RocketMQ——查看死信队列

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gwd1154978352/article/details/80817400

在上篇博客中我们了解了RocketMQ的ACK机制,其中涉及到了消息消费重试,当重试次数达到默认的16次后(可以通过配置文件修改)如果对应的消息还没被成功消费的话,该消息就会投递到DLQ死信队列。



不过,在使用控制台查询死信消息队列的时候会报错,具体如下图

org.apache.rocketmq.client.exception.MQClientException: Can not find Message Queue for this topic, %DLQ%consumer1 See http://rocketmq.apache.org/docs/faq/ for further details.


对应服务器进入相关的目录下,/usr/local/rocketmq/store/consumequeue,发现确实是存在%DLQ%consumer1


我们通过进入到,通过rocketmq的管理命令(先进入/usr/local/rocketmq/bin)查看所有的topic,发现也确实能够找到

sh mqadmin  topicList -n 192.168.140.129:9876;192.168.140.128:9876


查看该topic信息,发现perm为2

sh mqadmin  topicRoute -n 192.168.140.129:9876 -t %DLQ%consumer1


修改topic的perm为6(两台机器都要执行)

在128机器上执行如下命令:

 sh mqadmin  updateTopic -b 192.168.159.129:10911 -n 192.168.159.129:9876 -t %DLQ%consumer1 -p 6

129机器上执行如下命令:

 sh mqadmin  updateTopic -b 192.168.159.128:10911 -n 192.168.159.128:9876 -t %DLQ%consumer1 -p 6


查看控制台死信队列



展开阅读全文

没有更多推荐了,返回首页