【发布时间】:2017-04-11 04:55:08
【问题描述】:
我正在使用 Spring AMQP 将消息发布到 RabbitMQ。考虑一个场景:
1. Java 客户端使用 amqpTemplate.convertAndSend() 向 MQ 发送消息
2. 但是 RabbitMQ 已关闭或存在一些 n/w 问题
在这种情况下消息会丢失吗?或者 有什么办法可以持久化并重试?
我也检查了发布确认模型,但据我了解,最终我们必须通过自己的编码来处理 nack 消息。
【问题讨论】:
-
我们需要处理。重试逻辑应该在我们的代码中。您可以使用发布者确认来检查消息是否发布成功。如果没有,则从代码重试。
-
您可以使用
RetryTemplate,避免添加重试逻辑。
标签: rabbitmq spring-integration spring-amqp spring-rabbit