RocketMQ 消息堆积处理方案

首先要分析一下消息堆积可能造成的原因

1、如果是机器本身的原因,比如消费者组有几个消费者服务挂掉了,剩下少量消费者消费能力不足导致的消费积压,那就正常重新启动,然后慢慢再去消费积压的消息。

2、如果是生产者端由业务暴增引起的生产过快,而消费者端消费能力不足,这个时候就可以采取生产者端限流或者进行消费者扩容;这个时候要注意,如果生产者只是短期暴增或者消息的业务不是很重要可以采用限流,如果是长期暴增真正的业务量上涨就必须要进行消费者扩容。

3、比如说消费者挂了,然后broker堆积了很多消息,然后可以先把堆积的消息读到别的地方比如mysql或者es然后去后续进行处理,然后把RocketMQ堆积的消息删掉,启动消费者保障消费者正常消费,这里要注意的是删除堆积消息之前,需要停止mq。

你可能感兴趣的:(RocketMQ,java,中间件)