【问题标题】:Is message lost when there's n/w issue while publishing the message to RabbitMQ?将消息发布到 RabbitMQ 时出现 n/w 问题时消息会丢失吗?
【发布时间】: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


【解决方案1】:

RabbitTemplate 支持添加RetryTemplate,可以根据需要配置任何重试语义。它将处理代理关闭时的情况。

Adding Retry Capabilities

您可以使用交易或发布者确认来确保兔子保护消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2014-11-06
    相关资源
    最近更新 更多