繁体   English   中英

我怎么知道我的消息是用spring amqp成功发送的?

[英]How do I know that my message was sent successfully with spring amqp?

我使用RabbitTemplate类使用spring amqp写入RabbitMQ队列。 我使用convertAndSend方法将消息发送到队列。 这在正常情况下运行良好,但如果队列不存在,它似乎无声地失败。 不会抛出异常,也不会将错误/调试消息记录到记录器中。

确保邮件传递的最佳方式是什么?

以下是代码当前正在执行的操作的示例。

RabbitTemplate template = new RabbitTemplate(factory);
template.setQueue(queueName);
template.setRoutingKey(queueName);
template.convertAndSend(message);

RabbitMQ客户端向没有绑定队列的代理发送消息以接受消息并不是错误。 RabbitMQ将默默地放弃它,客户端将更加明智。 如果您没有对您的消息感兴趣的队列,则代理还没有其他许多可用选项。

也就是说,如果消息最终会通过设置强制标志而以静默方式丢弃,则可以让RabbitMQ抱怨。 我不知道Spring AMQP接口是否支持它,但它确实可以在RabbitMQ Java客户端库中使用。

您可以使用mandatory ,也可以启用发布者返回(对于无法传递的消息)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM