背景:rocketMq中队列消息过多、加上有时更新生产程序,导致队列中消息堆积,需要清空这些消息
清理步骤:
1、进入rocketMq目录中,关闭服务
cd /data/rocketmq/bin
sh mqshutdown broker
sh mqshutdown namesrv
2、备份下队列信息(毕竟操作失误了还能还原)
cd /root/
mv store store-bak
mv logs logs-bak
/root/store/CommitLog 存的是消息内容原文
/root/store/consumequeue 存的是消息在CommitLog中的offset(相当于索引)
/root/logs/rocketmqlogs/ 存的rocketmq的日志信息
当前这些具体存放路径是 根据配置文件来的
3、重新启动rocketMq服务
cd /data/rocketmq/bin
nohup sh mqnamesrv &
nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true -c ../conf/broker.conf &
这里需要说下,broker.conf配置里面,记得配置namesrvAddr地址
namesrvAddr=xxx.xxx.xx.xx:9876
4、初始化mq的数据
这里相当于就是新建队列了 ,把之前的队列新建一遍就ok了
cd /data/rocketmq/bin
./mqadmin updateTopic -t a_queue -c DefaultCluster -n 127.0.0.1:9876
./mqadmin updateTopic -t b_queue -c DefaultCluster -n 127.0.0.1:9876
./mqadmin updateTopic -t c_queue -c DefaultCluster -n 127.0.0.1:9876
./mqadmin updateTopic -t d_queue -c DefaultCluster -n 127.0.0.1:9876
./mqadmin updateTopic -t e_queue -c DefaultCluster -n 127.0.0.1:9876
5、观察下日志
tail -f ~/logs/rocketmqlogs/broker.log
看到连上namesrv就ok了
6、mqadmin用到的命令
#查看所有topic
sh mqadmin topicList -n localhost:9876
#查看全部消费者情况
sh mqadmin consumerProgress -n localhost:9876
ps:整体思路就是,将mq恢复出厂设置,再建立自己需要的东东。
版权声明:本文为m0_56169170原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。