MQ 重试队列注意事项

Posted wenniuwuren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MQ 重试队列注意事项相关的知识,希望对你有一定的参考价值。

不要过度依赖消息队列的重试来保证最终消费成功


举个例子,我们的消费消息队列的应用A依赖于应用B的某个接口,但是双十一流量太大,应用B的接口QPS不足,导致RPC超时返回(即本条消息消费失败),此条消息会进入重试队列。

进入重试队列不是万能的
问题一:RocketMQ重试16次还是不成功就会认为消息消费不了,丢进死信队列
问题二:RocketMQ重试队列数量少,可能100个正常的queue才1个重试queue,那么问题来了,要是本来100台机器应用A,每台消费一个正常queue,但是进入重试queue,只有1台机器能消费,1台重试queue的堆积能力和消费能力是不可能接受的

 

所以正确的架构解决方案是对应用B进行限流,让消息堆积在正常queue而不是堆积进重试queue

以上是关于MQ 重试队列注意事项的主要内容,如果未能解决你的问题,请参考以下文章

RocketMQ - 如何用死信队列解决消费者异常

RabbitMQ之消息可靠性死信交换机惰性队列及集群

RabbitMQ之消息可靠性死信交换机惰性队列及集群

MQ 重试队列注意事项

RabbitMQ-消息可靠性&延迟消息

MQ死信队列