技术交流28群

服务热线

135-6963-3175

微信服务号

rocketmq消息积压处理 更新时间 2019-5-25 浏览2093次

尽量保证生产端消费端差不多或consumer的个数和topic下queue的个数一致或成倍数

首先要找到是什么原因导致的消息堆积,是Producer太多了,Consumer太少了导致的还是说其他情况,总之先定位问题。然后看下消息消费速度是否正常,正常的话,可以通过上线更多consumer临时解决消息堆积问题

如果Consumer和Queue不对等,上线了多台也在短时间内无法消费完堆积的消息怎么办?

准备一个新的topic

扩大queue的数量

topic queue分布到多个Broker中

上线一台Consumer做消息的搬运工,把原来Topic中的消息挪到新的Topic里,不做业务逻辑处理,只是挪过去

上线N台Consumer同时消费临时Topic中的数据

改bug

恢复原来的Consumer,继续消费之前的Topic


或者在多个新的broker上创建topic分片并指定更大数量的队列,删除旧的broker上的配置。


堆积时间过长消息超时了?不会

RocketMQ中的消息只会在commitLog被删除的时候才会消失,不会超时。也就是说未被消费的消息不会存在超时删除这情况

堆积的消息会不会进死信队列?不会

不会,消息在消费失败后会进入重试队列(%RETRY%+ConsumerGroup),