我使用RabbitTemplate类使用
spring amqp写入RabbitMQ队列.我使用convertAndSend方法将消息发送到队列.这在正常情况下运行良好,但如果队列不存在,它似乎无声地失败.不会抛出异常,也不会将错误/调试消息记录到记录器中.
确保邮件发送的最佳方式是什么?
以下是代码当前正在执行的操作的示例.
RabbitTemplate template = new RabbitTemplate(factory); template.setQueue(queueName); template.setRoutingKey(queueName); template.convertAndSend(message);
解决方法
RabbitMQ客户端将消息发送到没有绑定队列以接受消息的代理并不是错误. RabbitMQ将默默地放弃它,客户端将不再明智.如果你没有对你的消息感兴趣的队列,那么经纪人还没有其他许多选择.
也就是说,如果通过设置mandatory标志消息将以静默方式丢弃,您可以让RabbitMQ抱怨.我不知道Spring AMQP接口是否支持它,但它确实可以在RabbitMQ Java客户端库中使用.