Home RocketMQ如何在控制台查看死信队列
Post
Cancel

RocketMQ如何在控制台查看死信队列

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)sh mqadmin topicList -n 192.168.140.129:9876;192.168.140.128:9876查看所有的Topic,发现也确实能够找到。

sh mqadmin topicRoute -n 192.168.140.129:9876 -t %DLQ%consumer1查看该Topic信息,发现perm为2。

修改Topic的perm为6(两台机器都要执行),在128机器上执行如下命令:

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

129机器上执行如下命令:

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

查看控制台死信队列。

This post is licensed under CC BY 4.0 by the author.