rocketMQ处理消息堆积

首先要找到原因,是producer太多了,还是说consumer太少了。定位问题,然后看下消息的消费速度是否正常,正常的话,可以通过临时上线更多consumer解决问题。

 

如果consumer和queue不对等,上线了多台consumer也无法解决的话,可以

  • 准备一个临时的topic;
  • queue的数量是堆积的N倍;
  • queue分布到多台broker中
  • 上线一台consumer做消息搬运工,把原来topic中的信息搬到新topic中,不做业务处理,只搬运
  • 上线N台consumer同时消费topic中的数据

 

tip1:堆积时间过长消息会超时吗?

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

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

不会的,消息再被消费失败后会进入重试队列。

posted @ 2021-12-07 21:38  sellingpear  阅读(961)  评论(0)    收藏  举报