1 使用方式
进入RocketMQ安装位置,在bin目录下执行./mqadmin {command} {args}
2 命令介绍
1)Topic相关
| 名称 |
含义 |
命令选项 |
说明 |
| updateTopic |
创建更新Topic配置 |
-b |
Broker 地址,表示 topic 所在 Broker,只支持单台Broker,地址为ip:port |
| -c |
cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询) |
| -h- |
打印帮助 |
| -n |
NameServer服务地址,格式 ip:port |
| -p |
指定新topic的读写权限( W=2|R=4|WR=6 ) |
| -r |
可读队列数(默认为 8) |
| -w |
可写队列数(默认为 8) |
| -t |
topic 名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ ) |
| deleteTopic |
删除Topic |
-c |
cluster 名称,表示删除某集群下的某个 topic (集群 可通过 clusterList 查询) |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic 名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ ) |
| topicList |
查看 Topic 列表信息 |
-h |
打印帮助 |
| -c |
不配置-c只返回topic列表,增加-c返回clusterName, topic, consumerGroup信息,即topic的所属集群和订阅关系,没有参数 |
| -n |
NameServer 服务地址,格式 ip:port |
| topicRoute |
查看 Topic 路由信息 |
-t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| topicStatus |
查看 Topic 消息队列offset |
-t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| topicClusterList |
查看 Topic 所在集群列表 |
-t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| updateTopicPerm |
更新 Topic 读写权限 |
-t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -b |
Broker 地址,表示 topic 所在 Broker,只支持单台Broker,地址为ip:port |
| -p |
指定新 topic 的读写权限( W=2|R=4|WR=6 ) |
| -c |
cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询),-b优先,如果没有-b,则对集群中所有Broker执行命令 |
| updateOrderConf |
从NameServer上创建、删除、获取特定命名空间的kv配置,目前还未启用 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic,键 |
| -v |
orderConf,值 |
| -m |
method,可选get、put、delete |
| allocateMQ |
以平均负载算法计算消费者列表负载消息队列的负载结果 |
-t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -i |
ipList,用逗号分隔,计算这些ip去负载Topic的消息队列 |
| statsAll |
打印Topic订阅关系、TPS、积累量、24h读写总量等信息 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -a |
是否只打印活跃topic |
| -t |
指定topic |
2)集群相关
| 名称 |
含义 |
命令选项 |
说明 |
| clusterList |
查看集群信息,集群、BrokerName、BrokerId、TPS等信息 |
-m |
打印更多信息 (增加打印出如下信息 #InTotalYest, #OutTotalYest, #InTotalToday ,#OutTotalToday) |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -i |
打印间隔,单位秒 |
| clusterRT |
发送消息检测集群各Broker RT。消息发往${BrokerName} Topic。 |
-a |
amount,每次探测的总数,RT = 总时间 / amount |
| -s |
消息大小,单位B |
| -c |
探测哪个集群 |
| -p |
是否打印格式化日志,以|分割,默认不打印 |
| -h |
打印帮助 |
| -m |
所属机房,打印使用 |
| -i |
发送间隔,单位秒 |
| -n |
NameServer 服务地址,格式 ip:port |
3)Broker相关
| 名称 |
含义 |
命令选项 |
说明 |
| updateBrokerConfig |
更新 Broker 配置文件,会修改Broker.conf |
-b |
Broker 地址,格式为ip:port |
| -c |
cluster 名称 |
| -k |
key 值 |
| -v |
value 值 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| brokerStatus |
查看 Broker 统计信息、运行状态(你想要的信息几乎都在里面) |
-b |
Broker 地址,地址为ip:port |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| brokerConsumeStats |
Broker中各个消费者的消费情况,按Message Queue维度返回Consume Offset,Broker Offset,Diff,TImestamp等信息 |
-b |
Broker 地址,地址为ip:port |
| -t |
请求超时时间 |
| -l |
diff阈值,超过阈值才打印 |
| -o |
是否为顺序topic,一般为false |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| getBrokerConfig |
获取Broker配置 |
-b |
Broker 地址,地址为ip:port |
| -n |
NameServer 服务地址,格式 ip:port |
| wipeWritePerm |
从NameServer上清除 Broker写权限 |
-b |
Broker 地址,地址为ip:port |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| cleanExpiredCQ |
清理Broker上过期的Consume Queue,如果手动减少对列数可能产生过期队列 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -b |
Broker 地址,地址为ip:port |
| -c |
集群名称 |
| cleanUnusedTopic |
清理Broker上不使用的Topic,从内存中释放Topic的Consume Queue,如果手动删除Topic会产生不使用的Topic |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -b |
Broker 地址,地址为ip:port |
| -c |
集群名称 |
| sendMsgStatus |
向Broker发消息,返回发送状态和RT |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -b |
BrokerName,注意不同于Broker地址 |
| -s |
消息大小,单位B |
| -c |
发送次数 |
4)消息相关
| 名称 |
含义 |
命令选项 |
说明 |
| queryMsgById |
根据offsetMsgId查询msg,如果使用开源控制台,应使用offsetMsgId,此命令还有其他参数,具体作用请阅读QueryMsgByIdSubCommand。 |
-i |
msgId |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| queryMsgByKey |
根据消息 Key 查询消息 |
-k |
msgKey |
| -t |
Topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| queryMsgByOffset |
根据 Offset 查询消息 |
-b |
Broker 名称,(这里需要注意 填写的是 Broker 的名称,不是 Broker 的地址,Broker 名称可以在 clusterList 查到) |
| -i |
query 队列 id |
| -o |
offset 值 |
| -t |
topic 名称 |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| queryMsgByUniqueKey |
根据msgId查询,msgId不同于offsetMsgId,区别详见常见运维问题。-g,-d配合使用,查到消息后尝试让特定的消费者消费消息并返回消费结果 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -i |
uniqe msg id |
| -g |
consumerGroup |
| -d |
clientId |
| -t |
topic名称 |
| checkMsgSendRT |
检测向topic发消息的RT,功能类似clusterRT |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic名称 |
| -a |
探测次数 |
| -s |
消息大小 |
| sendMessage |
发送一条消息,可以根据配置发往特定Message Queue,或普通发送。 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic名称 |
| -p |
body,消息体 |
| -k |
keys |
| -c |
tags |
| -b |
BrokerName |
| -i |
queueId |
| consumeMessage |
消费消息。可以根据offset、开始&结束时间戳、消息队列消费消息,配置不同执行不同消费逻辑,详见ConsumeMessageCommand。 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic名称 |
| -b |
BrokerName |
| -o |
从offset开始消费 |
| -i |
queueId |
| -g |
消费者分组 |
| -s |
开始时间戳,格式详见-h |
| -d |
结束时间戳 |
| -c |
消费多少条消息 |
| printMsg |
从Broker消费消息并打印,可选时间段 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic名称 |
| -c |
字符集,例如UTF-8 |
| -s |
subExpress,过滤表达式 |
| -b |
开始时间戳,格式参见-h |
| -e |
结束时间戳 |
| -d |
是否打印消息体 |
| printMsgByQueue |
类似printMsg,但指定Message Queue |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -t |
topic名称 |
| -i |
queueId |
| -a |
BrokerName |
| -c |
字符集,例如UTF-8 |
| -s |
subExpress,过滤表达式 |
| -b |
开始时间戳,格式参见-h |
| -e |
结束时间戳 |
| -p |
是否打印消息 |
| -d |
是否打印消息体 |
| -f |
是否统计tag数量并打印 |
| resetOffsetByTime |
按时间戳重置offset,Broker和consumer都会重置 |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -g |
消费者分组 |
| -t |
topic名称 |
| -s |
重置为此时间戳对应的offset |
| -f |
是否强制重置,如果false,只支持回溯offset,如果true,不管时间戳对应offset与consumeOffset关系 |
| -c |
是否重置c++客户端offset |
5)消费者、消费组相关
| 名称 |
含义 |
命令选项 |
说明 |
| consumerProgress |
查看订阅组消费状态,可以查看具体的client IP的消息积累量 |
-g |
消费者所属组名 |
| -s |
是否打印client IP |
| -h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| consumerStatus |
查看消费者状态,包括同一个分组中是否都是相同的订阅,分析Process Queue是否堆积,返回消费者jstack结果,内容较多,使用者参见ConsumerStatusSubCommand |
-h |
打印帮助 |
| -n |
NameServer 服务地址,格式 ip:port |
| -g |
consumer group |
| -i |
clientId |
| -s |
是否执行jstack |
| getConsumerStatus |
获取 Consumer 消费进度 |
-g |
消费者所属组名 |
| -t |
查询主题 |
| -i |
Consumer 客户端 ip |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| updateSubGroup |
更新或创建订阅关系 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -b |
Broker地址 |
| -c |
集群名称 |
| -g |
消费者分组名称 |
| -s |
分组是否允许消费 |
| -m |
是否从最小offset开始消费 |
| -d |
是否是广播模式 |
| -q |
重试队列数量 |
| -r |
最大重试次数 |
| -i |
当slaveReadEnable开启时有效,且还未达到从slave消费时建议从哪个BrokerId消费,可以配置备机id,主动从备机消费 |
| -w |
如果Broker建议从slave消费,配置决定从哪个slave消费,配置BrokerId,例如1 |
| -a |
当消费者数量变化时是否通知其他消费者负载均衡 |
| deleteSubGroup |
从Broker删除订阅关系 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -b |
Broker地址 |
| -c |
集群名称 |
| -g |
消费者分组名称 |
| cloneGroupOffset |
在目标群组中使用源群组的offset |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -s |
源消费者组 |
| -d |
目标消费者组 |
| -t |
topic名称 |
| -o |
暂未使用 |
6)连接相关
| 名称 |
含义 |
命令选项 |
说明 |
| consumerConnec tion |
查询 Consumer 的网络连接 |
-g |
消费者所属组名 |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| producerConnec tion |
查询 Producer 的网络连接 |
-g |
生产者所属组名 |
| -t |
主题名称 |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
7)NameServer相关
| 名称 |
含义 |
命令选项 |
说明 |
| updateKvConfig |
更新NameServer的kv配置,目前还未使用 |
-s |
命名空间 |
| -k |
key |
| -v |
value |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| deleteKvConfig |
删除NameServer的kv配置 |
-s |
命名空间 |
| -k |
key |
| -n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| getNamesrvConfig |
获取NameServer配置 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| updateNamesrvConfig |
修改NameServer配置 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
| -k |
key |
| -v |
value |
8)其他
| 名称 |
含义 |
命令选项 |
说明 |
| startMonitoring |
开启监控进程,监控消息误删、重试队列消息数等 |
-n |
NameServer 服务地址,格式 ip:port |
| -h |
打印帮助 |
3 注意事项
- 几乎所有命令都需要配置
-n表示 NameServer地址,格式为 ip:port
- 几乎所有命令都可以通过
-h获取帮助
- 如果既有
Broker地址( -b)配置项又有 clusterName(-c)配置项,则优先以 Broker地址执行命令;如果不配置 Broker地址,则对集群中所有主机执行命令
本文使用 mdnice 排版
文章永久链接:https://tech.souyunku.com/30410