本文介绍消息队列RabbitMQ版服务端默认的消息重试机制,帮助您理解消费失败后的消息处理逻辑,并选择合适的消息处理策略。

重试机制

消息队列RabbitMQ版服务端有默认的消息重试机制,不支持您在Consumer客户端重新配置消息重试机制和关闭消息重试机制。消息队列RabbitMQ版服务端默认的消息重试机制如下:
  • 如果您没有开启Consumer客户端消费消息,就不会触发消息重试。
  • 如果您开启了Consumer客户端消费消息,消费失败,即Consumer客户端一分钟内没有应答消息,则触发消息重试:
    • 重试期间,任何一次消费成功,即Consumer客户端应答消息,则立即停止消息重试。
    • 重试时间间隔为60秒。
    • 重试最多16次。超过16次,则停止重试。您可以选择:
      • 丢弃消息:如果您没有为重试失败的消息所在的Queue配置死信Exchange,则消息重试失败后被丢弃。
      • 将消息发送至死信Exchange:如果您为重试失败的消息所在的Queue配置了死信Exchange,则消息重试失败后被发送到死信Exchange,并根据RoutingKey和Binding Key被路由至目标Queue。目标Queue中的消息支持查询和导出。如何配置死信Exchange,请参见死信Exchange