本文主要介绍 RocketMQ 管理工具(mqadmin)的使用,文中所使用到的软件版本:RocketMQ 5.1.3、CentOS7.9.2009。
1、mqadmin 说明
A、执行命令方法:./mqadmin {command} {args}
B、几乎所有命令都需要配置 -n 表示 NameServer 地址,格式为 ip:port
C、几乎所有命令都可以通过 -h 获取帮助
D、如果既有 Broker 地址(-b)配置项又有 clusterName(-c)配置项,则优先以 Broker 地址执行命令,如果不配置 Broker 地址,则对集群中所有主机执行命令,只支持一个 Broker 地址。-b 格式为 ip:port,port 默认是 10911
2、mqadmin 使用2.1、Topic 相关2.1.1、创建或更新 Topic 配置
bin/mqadmin updateTopic -n 10.49.196.33:9876 -t TEST_TOPIC -c DefaultCluster -a +message.type=NORMAL
2.1.2、删除 Topic
bin/mqadmin deleteTopic -n 10.49.196.33:9876 -t TEST_TOPIC -c DefaultCluster
2.1.3、查看 Topic 列表信息
bin/mqadmin topicList -n 10.49.196.33:9876 -c DefaultCluster
2.1.4、查看 Topic 路由信息
bin/mqadmin topicRoute -n 10.49.196.33:9876 -t TEST_TOPIC
2.1.5、查看 Topic 消息队列 offset
bin/mqadmin topicStatus -n 10.49.196.33:9876 -t TEST_TOPIC
2.1.6、查看 Topic 所在集群列表
bin/mqadmin topicClusterList -n 10.49.196.33:9876 -t TEST_TOPIC
2.1.7、打印 Topic 订阅关系、TPS、积累量、24h 读写总量等信息
bin/mqadmin statsAll -n 10.49.196.33:9876 -t TEST_TOPIC
2.2、集群相关2.2.1、查看集群信息,集群、BrokerName、BrokerId、TPS 等信息
bin/mqadmin clusterList -n 10.49.196.33:9876
2.2.2、发送消息检测集群各 Broker RT(响应耗时),消息发往${BrokerName}Topic。
bin/mqadmin clusterRT -n 10.49.196.33:9876 -c DefaultCluster
2.3、Broker 相关2.3.1、根据 offsetMsgId 查询消息
bin/mqadmin queryMsgById -n 10.49.196.33:9876 -i 0A31C42100002A9F000000000012B6D0
2.3.2、根据消息 Key 查询消息
bin/mqadmin queryMsgByKey -n 10.49.196.33:9876 -t TEST_TOPIC -k myKey
2.3.3、根据 Offset 查询消息
bin/mqadmin queryMsgByOffset -n 10.49.196.33:9876 -b broker-a -t TEST_TOPIC -i 6 -o 1
-i:队列 id,-o:队列 offset
2.3.4、根据 messageId 查询消息
bin/mqadmin queryMsgByUniqueKey -n 10.49.196.33:9876 -t TEST_TOPIC -i 01005056C000014C8C04E5EEEB00000001
2.3.5、检测向 topic 发消息的 RT,功能类似 clusterRT
bin/mqadmin checkMsgSendRT -n 10.49.196.33:9876 -t TEST_TOPIC
2.3.6、发送消息
bin/mqadmin sendMessage -n 10.49.196.33:9876 -t TEST_TOPIC -k myKey -c myTag -p messageContent
-k:消息 key,-c:消息 tag,-p:消息内容
2.3.7、消费消息
bin/mqadmin consumeMessage -n 10.49.196.33:9876 -t TEST_TOPIC -g myGroup
2.3.8、从 Broker 消费消息并打印
bin/mqadmin printMsg -n 10.49.196.33:9876 -t TEST_TOPIC
2.3.9、从 Broker 消费消息并打印(指定 Message Queue)
bin/mqadmin printMsgByQueue -n 10.49.196.33:9876 -a broker-a -t TEST_TOPIC -i 6 -p true
-a:broker 名称,-i:队列 id,-p:是否打印消息
2.3.10、按时间戳重置 offset,Broker 和 consumer 都会重置
bin/mqadmin resetOffsetByTime -n 10.49.196.33:9876 -b broker-a -t TEST_TOPIC -g myGroup -s 2023-08-10#10:09:22:000
2.4、消费相关2.4.1、查看订阅组消费状态
bin/mqadmin consumerProgress -n 10.49.196.33:9876 -g myGroup
2.4.2、查看消费者状态
bin/mqadmin consumerStatus -n 10.49.196.33:9876 -g myGroup
改命令会报连接不上客户端的错误:send request to failed。
2.4.3、更新或创建订阅关系
bin/mqadmin updateSubGroup -n 10.49.196.33:9876 -g myGroup2 -b 10.49.196.33:10911
2.4.4、从 Broker 删除订阅关系
bin/mqadmin deleteSubGroup -n 10.49.196.33:9876 -g myGroup2 -b 10.49.196.33:10911
2.4.5、在目标群组中使用源群组的 offset
bin/mqadmin cloneGroupOffset -n 10.49.196.33:9876 -t TEST_TOPIC -s myGroup -d myGroup2
2.5、连接相关2.5.1、查询 Consumer 的网络连接
bin/mqadmin consumerConnection -n 10.49.196.33:9876 -g myGroup
2.5.2、查询 Producer 的网络连接
bin/mqadmin producerConnection -n 10.49.196.33:9876 -t TEST_TOPIC -g producerGroup
从 5.x 版本开始,生产者是匿名的,无需管理生产者分组;因此 5.x 版本无法使用该命令。
2.6、NameServer 相关2.6.1、更新 NameServer 的 kv 配置
bin/mqadmin updateKvConfig -n 10.49.196.33:9876 -k bindAddress -v 0.0.0.0 -s myNamespace
2.6.2、删除 NameServer 的 kv 配置
bin/mqadmin deleteKvConfig -n 10.49.196.33:9876 -k clusterTest -s myNamespace
2.6.3、获取 NameServer 配置
bin/mqadmin updateNamesrvConfig -n 10.49.196.33:9876 -k bindAddress -v 0.0.0.0
2.7、其他2.7.1、开启监控进程(监控消息误删、重试队列消息数等)
bin/mqadmin startMonitoring -n 10.49.196.33:9876
参考:https://rocketmq.apache.org/zh/docs/deploymentOperations/02admintool