RocketMQ-Broker异常恢复后部分队列重新加载已消费消息问题解决

问题描述

      线上Broker所有在主机IO异常,导致Broker异常退出,主机问题解决后,重启Broker,发现group-A的几个consumeQueue,diff值有几十万,而通过查看日志信息发现该Group的consumeQueue只有几个消息未被消息,那么只能说明Broker异常恢复后将已经消费过的消息重新加载到了consumeQueue中,即:consumeQueue在Broker异常恢复过程中被重置了。

通过该线上故障需要弄清楚以下问题:

1、在Broker异常恢复过程中在什么场景下重置了consumeQueue?

2、Consumer消费完消息后如何更新consumeQueue?

https://mp.weixin.qq.com/s/3BiIvcZ6RPRKNiM-4eCs9Q

3、Broker异常重启后如何将异常加载的consumeQueue积压数据恢复到正常状态?

https://mp.csdn.net/postedit/102505114

问题解决

测试环境模拟Broker异常consumeQueue有消息积压,Broker启动后查看consumeQueue,如下:

将Broker停掉,修改./config/consumerOffset.json

 修改后:

重启Broker,查看consumeQueue ,如下:

 

总结

 如果重启后只有少量消息堆积且有重复消息的话可以不使用上述方法;

该方法使用只建议在:需要保证消息已经消费过,或者该topic的消息允许有部分丢弃,并且consumeQueue有大量积压需要处理很长时间才能恢复的情况下;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值