服务热线
135-6963-3175
尽量保证生产端消费端差不多或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),