我如何知道我的消息是使用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
并且还可以启用发布商退货(对于无法投递的消息)。
上一篇: How do I know that my message was sent successfully with spring amqp?