RocketMQ——管理命令
RocketMQ提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker等信息的管理;
使用步骤
进入rocketmq目录下的bin目录,可以看到该目录下有个mqadmin脚本
常用命令
查看帮助:
sh mqadmin help 命令名称
例如,查看updateTopic的使用
sh mqadmin help updateTopic
创建(修改)topic
指令 |
updateTopic |
类路径 |
com.alibaba.rocketmq.tools.command.topic.UpdateTopicSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
如果 -c为空,则必填 |
broker地址,表示topic建在该broker |
|||
-c |
如果 -b为空,则必填 |
cluster名称,表示topic建在该集群(集群可通过clusterList查询) |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
-p |
否 |
指定新topic的权限限制( W|R|WR ) |
|||
-r |
否 |
可读队列数(默认为8) |
|||
-w |
否 |
可写队列数(默认为8) |
|||
-t |
是 |
topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ ) |
|||
举例 |
在集群DefaultCluster上创建主题ZTEExample,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin updateTopic –n 10.45.47.168 –c DefaultCluster –t ZTEExample |
删除topic
指令 |
deleteTopic |
类路径 |
com.alibaba.rocketmq.tools.command.topic.DeleteTopicSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-c |
是 |
cluster名称,表示删除某集群下的某个topic (集群可通过clusterList查询) |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;… |
|||
-t |
是 |
topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ ) |
|||
举例 |
在集群DefaultCluster上删除主题ZTEExample,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin deleteTopic –n 10.45.47.168:9876 –c DefaultCluster –t ZTEExample |
创建(修改)订阅组
指令 |
updateSubGroup |
类路径 |
com.alibaba.rocketmq.tools.command.consumer.UpdateSubGroupSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
如果 –c为空,则必填 |
broker地址,表示订阅组建在该broker |
|||
-c |
如果 –b为空,则必填 |
cluster名称,表示topic建在该集群(集群可通过clusterList查询) |
|||
-d |
否 |
是否容许广播方式消费 |
|||
-g |
是 |
订阅组名 |
|||
-i |
否 |
从哪个broker开始消费 |
|||
-m |
否 |
是否容许从队列的最小位置开始消费,默认会设置为false |
|||
-q |
否 |
消费失败的消息放到一个重试队列,每个订阅组配置几个重试队列 |
|||
-r |
否 |
重试消费最大次数,超过则投递到死信队列,不再投递,并报警 |
|||
-s |
否 |
消费功能是否开启 |
|||
-w |
否 |
发现消息堆积后,将Consumer的消费请求重定向到另外一台Slave机器 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
删除订阅组配置
指令 |
deleteSubGroup |
类路径 |
com.alibaba.rocketmq.tools.command.consumer.DeleteSubscriptionGroupCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
如果 –c为空,则必填 |
broker地址,表示订阅组建在该broker |
|||
-c |
如果 –b为空,则必填 |
cluster名称,表示topic建在该集群(集群可通过clusterList查询) |
|||
-g |
是 |
订阅组名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
更新broker配置文件
指令 |
updateBrokerConfig |
类路径 |
com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
如果 –c为空,则必填 |
broker地址,表示订阅组建在该broker |
|||
-c |
如果 –b为空,则必填 |
cluster名称,表示topic建在该集群(集群可通过clusterList查询) |
|||
-k |
是 |
key值 |
|||
-v |
否 |
value值 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
查看topic列表信息
指令 |
topicList |
类路径 |
com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
nameserve地址为192.168.140.129:9876;192.168.140.128:9876 |
||||
sh mqadmin topicList -n 192.168.140.129:9876;192.168.140.128:9876 打印内容: %DLQ%consumer1BenchmarkTest TopicTest broker-a DefaultCluster SELF_TEST_TOPIC rocketmq-cluster broker-b TBW102 %RETRY%consumer1 OFFSET_MOVED_EVENT |
查看topic路由信息
指令 |
topicRoute |
类路径 |
com.alibaba.rocketmq.tools.command.topic.TopicRouteSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-t |
是 |
topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查看主题%DLQ%consumer1的路由,nameserve地址为192.168.140.129:9876 |
||||
sh mqadmin topicRoute -n 192.168.140.129:9876 -t %DLQ%consumer1 打印内容: {"brokerDatas":[ { "brokerAddrs":{0:"192.168.140.128:10911" }, "brokerName":"broker-a" }, { "brokerAddrs":{0:"192.168.140.129:10911" }, "brokerName":"broker-b" } ], "filterServerTable":{}, "queueDatas":[ { "brokerName":"broker-b", "perm":6, "readQueueNums":8, "topicSynFlag":0, "writeQueueNums":8 }, { "brokerName":"broker-a", "perm":6, "readQueueNums":8, "topicSynFlag":0, "writeQueueNums":8 } ] } |
查看topic统计信息
指令 |
topicStats |
类路径 |
com.alibaba.rocketmq.tools.command.topic.TopicStatsSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-t |
是 |
topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查看主题%DLQ%consumer1的统计信息,nameserve地址为192.168.140.129:9876 |
||||
sh mqadmin topicStatus -n 192.168.140.129:9876 -t %DLQ%consumer1 打印内容:(统计信息里包括有offset、最后更新时间) #Broker Name #QID #Min Offset #Max Offset #Last Updatedbroker-a 0 0 2 2018-06-27 12:30:43,799 broker-a 1 0 0 broker-a 2 0 0 broker-a 3 0 0 broker-a 4 0 0 broker-a 5 0 0 broker-a 6 0 0 broker-a 7 0 0 broker-b 0 0 0 broker-b 1 0 0 broker-b 2 0 0 broker-b 3 0 0 broker-b 4 0 0 broker-b 5 0 0 broker-b 6 0 0 broker-b 7 0 0
|
查看broker统计信息
指令 |
brokerStats |
类路径 |
com.alibaba.rocketmq.tools.command.broker.BrokerStatsSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
是 |
broker地址 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查看broker(crmdb)的统计信息,broker地址为192.168.159.128:10911,nameserve地址为192.168.159.128:9876 |
||||
sh mqadmin brokerStatus –n 192.168.159.128:9876 -b 192.168.159.128:10911 打印内容: bootTimestamp : 1530064800815brokerVersion : 79 brokerVersionDesc : V3_2_6 commitLogDiskRatio : 0.0884271336380361 commitLogMaxOffset : 18354 commitLogMinOffset : 0 consumeQueueDiskRatio : 0.0884271336380361 dispatchMaxBuffer : 35 getFoundTps : 0.0 0.0 0.0 getMessageEntireTimeMax : 6 getMissTps : 0.7996801279488205 0.6664334149714267 0.6663790130593626 getTotalTps : 0.7996801279488205 0.6664334149714267 0.6663790130593626 getTransferedTps : 0.0 0.0 0.0 msgGetTotalTodayMorning : 0 msgGetTotalTodayNow : 107 msgGetTotalYesterdayMorning : 0 msgPutTotalTodayMorning : 0 msgPutTotalTodayNow : 35 msgPutTotalYesterdayMorning : 0 putMessageAverageSize : 262.2 putMessageDistributeTime : 34(97.14285714285714%) 1(2.857142857142857%) 0(0.0%) 0(0.0%) 0(0.0%) 0(0.0%) 0(0.0%) putMessageEntireTimeMax : 3 putMessageSizeTotal : 9177 putMessageTimesTotal : 35 putTps : 0.0 0.0 0.0 runtime : [ 0 days, 4 hours, 54 minutes, 41 seconds ] scheduleMessageOffset_10 : 2,2 scheduleMessageOffset_11 : 2,2 scheduleMessageOffset_12 : 2,2 scheduleMessageOffset_13 : 2,2 scheduleMessageOffset_14 : 2,2 scheduleMessageOffset_15 : 2,2 scheduleMessageOffset_16 : 2,2 scheduleMessageOffset_17 : 2,2 scheduleMessageOffset_18 : 4,4 scheduleMessageOffset_3 : 2,2 scheduleMessageOffset_4 : 2,2 scheduleMessageOffset_5 : 2,2 scheduleMessageOffset_6 : 2,2 scheduleMessageOffset_7 : 2,2 scheduleMessageOffset_8 : 2,2 scheduleMessageOffset_9 : 2,2 sendThreadPoolQueueCapacity : 100000 sendThreadPoolQueueSize : 0 |
根据消息ID查询消息
指令 |
queryMsgById |
类路径 |
com.alibaba.rocketmq.tools.command.message.QueryMsgByIdSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-i |
是 |
msgId |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询msgId= C0A89F8000002A9F000000000000449A的消息,nameserve地址为192.168.159.129:9876 |
||||
sh mqadmin queryMsgById -n 192.168.159.129:9876 -i C0A89F8000002A9F000000000000449A 打印内容: Topic: %RETRY%consumer1Tags: [TagA] Keys: [null] Queue ID: 0 Queue Offset: 31 CommitLog Offset: 17562 Reconsume Times: 16 Born Timestamp: 2018-06-27 13:44:21,220 Store Timestamp: 2018-06-27 12:30:37,794 Born Host: 192.168.159.1:55259 Store Host: 192.168.159.128:10911 System Flag: 0 Properties: {ORIGIN_MESSAGE_ID=C0A89F8000002A9F00000000000023D9, DELAY=18, REAL_TOPIC=%RETRY%consumer1, TAGS=TagA, WAIT=false, RETRY_TOPIC=TopicTest, REAL_QID=0} Message Body Path: /tmp/rocketmq/msgbodys/C0A89F8000002A9F000000000000449A MessageTrack [consumerGroup=consumer1, trackType=SUBSCRIBED_AND_CONSUMED, exceptionDesc=null] |
根据消息key查询消息
指令 |
queryMsgByKey |
类路径 |
com.alibaba.rocketmq.tools.command.message.QueryMsgByKeySubCommand |
||
参数 |
是否必填 |
说明 |
|||
-f |
否 |
被查询消息的截止时间 |
|||
-k |
是 |
msgKey |
|||
-t |
是 |
Topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询Topic= TopicTest下key=i0的消息,nameserve地址为192.168.140.128:9876 |
||||
sh mqadmin queryMsgByKey -n 192.168.140.128:9876 -t TopicTest -k i0 打印内容: #Message ID #QID #Offset |
根据Offset查询消息
指令 |
queryMsgByOffset |
类路径 |
com.alibaba.rocketmq.tools.command.message.QueryMsgByOffsetSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
是 |
Broker名称,表示订阅组建在该broker(这里需要注意填写的是broker的名称,不是broker的地址,broker名称可以在clusterList查到) |
|||
-i |
是 |
query队列id |
|||
-o |
是 |
offset值 |
|||
-t |
是 |
topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询brokerName=broker-a,Topic= TopicTest的第1个队列下offset=0的消息,nameserve地址为192.168.140.128:9876 |
||||
sh mqadmin queryMsgByOffset -n 192.168.140.128:9876 -b broker-a -i 0 -t TopicTest -o 0 打印内容: Topic: TopicTest |
注:以下命令均未测试过
查询Producer的网络连接
该命令只打印当前与cluster连接的producer网络连接信息
指令 |
producerConnection |
类路径 |
com.alibaba.rocketmq.tools.command.connection.ProducerConnectionSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-g |
是 |
生产者所属组名 |
|||
-t |
是 |
topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询当前属于group(生产者组)=simple-producer-test的生产者到topic=ZTEExample的网络连接,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin producerConnection -n 10.45.47.168:9876 -g simple-producer-test -t ZTEExample 打印内容: 0001 [email protected]0c 10.45.46.229:4332 JAVA V3_0_7 |
查询Consumer的网络连接
l 该命令只打印当前与cluster连接的consumer网络连接信息
指令 |
consumerConnection |
类路径 |
com.alibaba.rocketmq.tools.command.connection.ConsumerConnectionSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-g |
是 |
消费者所属组名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询当前属于group(消费者组)=simple-consumer-test的消费者的网络连接,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin consumerConnection -n 10.45.47.168:9876 -g simple-consumer-test 打印内容: 001 [email protected]ae 10.45.46.229:4355 JAVA V3_0_7
Below is subscription: 001 Topic: ZTEExample SubExpression: *
ConsumeType: CONSUME_ACTIVELY MessageModel: CLUSTERING ConsumeFromWhere: CONSUME_FROM_LAST_OFFSET |
查看订阅组消费状态
指令 |
consumerProgress |
类路径 |
com.alibaba.rocketmq.tools.command.consumer.ConsumerProgressSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-g |
是 |
消费者所属组名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询当前属于group(消费者组)=simple-consumer-test的订阅状态,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin consumerProgress -n 10.45.47.168:9876 -g simple-consumer-test 打印内容: #Topic #Broker Name #QID #Broker Offset #Consumer Offset #Diff ZTEExample crm-168 0 2 2 0 ZTEExample crm-168 1 0 0 0 ZTEExample crm-168 2 0 0 0 ZTEExample crm-168 3 0 0 0 ZTEExample crm-168 4 0 0 0 ZTEExample crm-168 5 0 0 0 ZTEExample crm-168 6 0 0 0 ZTEExample crm-168 7 0 0 0
Consume TPS: 0 Diff Total: 0 |
查看集群消息
指令 |
clusterList |
类路径 |
com.alibaba.rocketmq.tools.command.cluster.ClusterListSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-m |
否 |
打印更多信息 (增加打印出如下信息 #InTotalYest, #OutTotalYest, #InTotalToday ,#OutTotalToday) |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询当前集群状态,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin clusterList -n 10.45.47.168:9876 打印内容: #Cluster Name #Broker Name #BID #Addr #Version #InTPS #OutTPS CRM crm-168 0 10.45.47.168:10911 V3_0_7 0.00 0.00 CRM crm-181 0 10.45.47.181:10911 V3_0_7 0.00 0.00
sh mqadmin clusterList -n 10.45.47.168:9876 –m #Cluster Name #Broker Name #InTotalYest #OutTotalYest #InTotalToday #OutTotalToday CRM crm-168 0 0 2 3 CRM crm-181 0 0 0 0 |
添加(更新)KV配置信息
指令 |
updateKvConfig |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.UpdateKvConfigCommand |
||
参数 |
是否必填 |
说明 |
|||
-k |
是 |
key值 |
|||
-v |
是 |
value值 |
|||
-s |
是 |
Namespace值 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
删除KV配置信息
指令 |
deleteKvConfig |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.DeleteKvConfigCommand |
||
参数 |
是否必填 |
说明 |
|||
-k |
是 |
key值 |
|||
-s |
是 |
Namespace值 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
添加(更新)Project group配置信息
指令 |
updateProjectGroup |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.UpdateProjectGroupCommand |
||
参数 |
是否必填 |
说明 |
|||
-i |
是 |
服务器ip |
|||
-p |
是 |
project group名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
删除Projectgroup配置信息
指令 |
deleteProjectGroup |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.DeleteProjectGroupCommand |
||
参数 |
是否必填 |
说明 |
|||
-i |
是 |
服务器ip |
|||
-p |
是 |
project group名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
取得Projectgroup配置信息
指令 |
getProjectGroup |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.GetProjectGroupCommand |
||
参数 |
是否必填 |
说明 |
|||
-i |
是 |
服务器ip |
|||
-p |
是 |
project group名 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
设置消费进度
l 根据时间来设置消费进度,设置之前要关闭这个订阅组的所有consumer,设置完再启动,方可生效
指令 |
resetOffsetByTime |
类路径 |
com.alibaba.rocketmq.tools.command.offset.ResetOffsetByTimeSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-f |
否 |
通过时间戳强制回滚(true|false),默认为true |
|||
-s |
是 |
时间戳 (currentTimeMillis|yyyy-MM-dd#HH:mm:ss:SSS) |
|||
-g |
是 |
消费者所属组名 |
|||
-t |
是 |
topic名称 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
清除特定Broker权限
指令 |
wipeWritePerm |
类路径 |
com.alibaba.rocketmq.tools.command.namesrv.WipeWritePermSubCommand |
||
参数 |
是否必填 |
说明 |
|||
-b |
是 |
broker地址 |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
|
||||
|
获取Consumer消费进度
l 该命令只打印当前与cluster连接的consumer的消费进度
指令 |
getConsumerStatus |
类路径 |
com.alibaba.rocketmq.tools.command.offset.GetConsumerStatusCommand |
||
参数 |
是否必填 |
说明 |
|||
-g |
是 |
消费者所属组名 |
|||
-t |
是 |
查询主题 |
|||
-i |
否 |
Consumer客户端ip |
|||
-h |
否 |
打印帮助 |
|||
-n |
是 |
nameserve服务地址列表,格式ip:port;ip:port;... |
|||
举例 |
查询属于group(消费者组)=simple-consumer-test的消费者在Topic=ZTEExample上的消费状态,nameserve地址为10.45.47.168:9876 |
||||
sh mqadmin getConsumerStatus -n 10.45.47.168:9876 -g simple-consumer-test -t ZTEExample get consumer status from client. group=simple-consumer-test, topic=ZTEExample, originClientId= #clientId #brokerName #queueId #offset [email protected] crm-168 4 0 [email protected] crm-168 0 2 [email protected] crm-168 3 0 [email protected] crm-168 1 0 [email protected] crm-168 5 0 [email protected] crm-168 6 0 [email protected] crm-168 7 0 [email protected] crm-168 2 0 |
上一篇: RocketMQ实战系列-RocketMQ命令详解
下一篇: having的用法