MQ 重试队列注意事项

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


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

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

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

发布了159 篇原创文章 · 获赞 350 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/wenniuwuren/article/details/97016452