最近遇到rocketMq的消息堆积的问题,一边学习一边处理,rocketMq的消息堆积发现应该分为两层,一层是broker中实际写入消息量和consumeQueue已经消费位移的偏差,另外一层consumer端本身已经拉取消息的堆积。
对于第一层的堆积监控处理如下:
/**
* 监听rocketMq中的消息数量
* @return
*/
- public long getDiffTotal () {
- DefaultMQAdminExt defaultMQAdminExt = ApplicationContext.getInstance().getDefaultMQAdminExt();
- long diffTotal = 0L;
- try {
- // 当消费端未消费时,此方法会报错
- ConsumeStats consumeStats = defaultMQAdminExt.examineConsumeStats("QueryTask_ConsumerGroup_hmzx_hmzx_xgq_test");
- List<MessageQueue> mqList = new LinkedList();