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

Eri*_*las 7 java spring amqp rabbitmq spring-amqp

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

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

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

RabbitTemplate template = new RabbitTemplate(factory);
template.setQueue(queueName);
template.setRoutingKey(queueName);
template.convertAndSend(message);
Run Code Online (Sandbox Code Playgroud)

Bri*_*lly 4

对于 RabbitMQ 客户端将消息发送到内部没有绑定队列来接受消息的代理来说,这并不是一个错误。RabbitMQ 会默默地丢弃它,客户端也不会知道。如果您没有对您的消息感兴趣的队列,则代理没有许多其他可用选项。

也就是说,如果通过设置强制标志最终会默默地删除消息,您可以让 RabbitMQ 发出抱怨。我不知道 Spring AMQP 接口是否支持它,但它肯定可以在 RabbitMQ Java 客户端库中使用。