【问题标题】:RabbitMQ redelivery backoff of rejected requeued messages?被拒绝的重新排队消息的 RabbitMQ 重新传递退避?
【发布时间】:2016-01-02 22:59:03
【问题描述】:

我有一个简单的服务,它订阅来自 RabbitMQ 的消息并将它们写入数据存储区。有时,此数据存储在短时间内不可用(有时是几秒钟,有时是几分钟)。如果发生这种情况,我们对失败的消息执行basic.reject,并将requeue 设置为true。虽然这有效,但消息似乎会立即重新传递。我希望 RabbitMQ 能够优雅地退回重新交付。例如,首先尝试“立即”重新交付,然后在 2、3、5、8、13 秒等之后重新交付。这可能吗?如果可以,如何?

【问题讨论】:

标签: rabbitmq


【解决方案1】:

除了 Louis F. 作为评论发布的内容之外,请查看延迟消息交换插件 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/

您可以使用延迟消息交换类型设置死信交换,并且无需进行大量配置和使用类似的 TTL 即可轻松完成。

【讨论】:

  • 谢谢你,看起来比我一直在使用的 DLX + TTL hack 干净得多。
猜你喜欢
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多