常用维护操作---详细命令
RocketMQ提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker等信息的管理;
登录控制台:
首先进入RocketMQ工程,进入/RocketMQ/bin,在该目录下有个mqadmin脚本
查看帮助:
在mqadmin下可以查看有哪些命令
sh mqadmin
查看具体命令的使用
sh mqadmin help 命令名称
例如,查看updateTopic的使用
sh mqadmin help updateTopic
1.创建topic
指令:updateTopic
类路径:com.alibaba.rocketmq.tools.command.topic.UpdateTopicSubCommand
参数是否必填说明
-b,表示topic建在该broker
-c,表示topic建在该集群(集群可通过clusterList查询)
-n,是nameserve服务地址列表,格式ip:port;ip:port;...
-t,topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )
举例:在集群DefaultCluster上创建主题ZBPTxample,nameserve地址为10.45.47.168:9876
sh mqadmin updateTopic –n 10.45.47.168 –c DefaultCluster –t ZBPTxample
2.删除Topic
指令:deleteTopic
类路径:com.alibaba.rocketmq.tools.command.topic.DeleteTopicSubCommand
参数是否必填说明
-c,是cluster名称,表示删除某集群下的某个topic (集群可通过clusterList查询)
-n,是nameserve服务地址列表,格式ip:port;ip:port;…
-t,是topic名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )
举例:在集群DefaultCluster上删除主题ZBPTxample,nameserve地址为10.45.47.168:9876
sh mqadmin deleteTopic –n 10.45.47.168:9876 –c DefaultCluster –t ZBPTxample
3.删除Topic
指令:updateSubGroup
类路径:com.alibaba.rocketmq.tools.command.consumer.UpdateSubGroupSubCommand
参数是否必填说明
-b,表示订阅组建在该broker
-c,表示topic建在该集群(集群可通过clusterList查询
-n,是nameserve服务地址列表,格式ip:port;ip:port;...
举例:在集群DefaultCluster上创建消费组ZBPTxampleGROUP,nameserve地址为10.45.47.168:9876
sh mqadmin updateSubGroup –n 10.45.47.168:9876 –c DefaultCluster –t ZBPTxampleGROUP
4.删除订阅组配置
指令:deleteSubGroup
类路径:com.alibaba.rocketmq.tools.command.consumer.DeleteSubscriptionGroupCommand
举例:在集群DefaultCluster上删除消费组ZBPTxampleGROUP,nameserve地址为10.45.47.168:9876
sh mqadmin deleteSubGroup –n 10.45.47.168:9876 –c DefaultCluster –t ZBPTxampleGROUP
5.更新Broker配置文件
指令:updateBrokerConfig
举例在集群DefaultCluster上修改延时级别,nameserve地址为10.45.47.168:9876
sh mqadmin updateBrokerConfig -n
10.45.47.168:9876 -c DefaultCluster -k messageDelayLevel -v 1s 5s 10s
30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 45m 1h 2h 6h
6.查看Topic列表信息
指令:topicList类
举例:nameserve地址为10.45.47.168:9876
sh mqadmin topicList –n 10.45.47.168:9876
打印内容:
BenchmarkTest
%RETRY%simple-consumer-test
SELF_TEST_TOPIC
ZBPTxample
注释:上述头三个主题是RocketMQ默认预先创建
7.查看Topic路由信息
指令:topicRoute
举例:查看主题ZBPTxample的路由,nameserve地址为10.45.47.168:9876
sh mqadmin topicRoute –n 10.45.47.168:9876 –t ZBPTxample_Crm
打印内容:
{
"brokerDatas":[{
"brokerAddrs":{0:"10.45.47.168:10911"
},
"brokerName":"crmdb"
}],
"queueDatas":[{
"brokerName":"crmdb",
"perm":6,
"readQueueNums":8,
"writeQueueNums":8
}]
}
8.查看Topic统计信息
指令:topicStatus
举例:查看主题ZBPTxample的统计信息,nameserve地址为10.45.47.168:9876
sh mqadmin topicStats –n 10.45.47.168:9876 –t ZBPTxample
打印内容:(统计信息里包括有offset、最后更新时间)
#Broker Name#QID#Min Offset#Max Offset#Last Updated
crmdb 0012014-02-10 11:37:44,977
crmdb100
crmdb200
crmdb300
crmdb400
crmdb500
crmdb600
crmdb700
9.查看Broker统计信息
举例:查看broker(crmdb)的统计信息,broker地址为10.45.47.168:10911,nameserve地址为10.45.47.168:9876
sh mqadmin brokerStats –n 10.45.47.168:9876 –b 10.45.47.168:10911
10.根据消息ID查询消息
指令:queryMsgById
举例:查询msgId= 0A2D2FA800002A9F0000000000000000的消息,nameserve地址为10.45.47.168:9876
sh mqadmin queryMsgById –n 10.45.47.168:9876 –i 0A2D2FA800002A9F0000000000000000
11.根据消息ID查询消息
指令:queryMsgByKey
举例:查询Topic= ZBPTxample下key= SimpleTest-1的消息,nameserve地址为10.45.47.168:9876
sh mqadmin queryMsgByKey -n 10.45.47.168:9876 -t ZBPTxample -k SimpleTest-1
打印内容:
#Message ID #QID #Offset
0A2D2FA800002A9F0000000000000000 0 0
12.根据Offset查询消息
指令:queryMsgByOffset
举例:查询brokerName=crm-168,Topic= ZBPTxample的第1个队列下offset=0的消息,nameserve地址为10.45.47.168:9876
sh mqadmin queryMsgByOffset -n 10.45.47.168:9876 -b crm-168 -i 0 -t ZBPTxample -o 0
打印内容:
Topic: ZBPTxample
Tags: [SimpleTest]
Keys: [SimpleTest-1]
Queue ID: 0
Queue Offset: 0
CommitLog Offset: 0
Born Timestamp: 2014-02-26 14:49:10,875
Store Timestamp: 2014-02-26 14:48:44,840
Born Host: 10.45.46.229:4231
Store Host: 10.45.47.168:10911
System Flag: 0
Properties: {TAGS=SimpleTest, KEYS=SimpleTest-1, WAIT=true}
Message Body Path: /tmp/rocketmq/msgbodys/0A2D2FA800002A9F0000000000000000
13.查询Producer的网络连接
该命令只打印当前与cluster连接的producer网络连接信息
指令:producerConnection
举例:查询当前属于group(生产者组)=simple-producer-test的生产者到topic=ZBPTxample的网络连接,nameserve地址为10.45.47.168:9876
sh mqadmin producerConnection -n 10.45.47.168:9876 -g simple-producer-test -t ZBPTxample
打印内容:
0001 10.45.46.229@simple-producer-test-99f09de2a20a4b6284bb949b452bee0c 10.45.46.229:4332 JAVA V3_0_7
14.查询Consumer的网络连接
举例:查询当前属于group(消费者组)=simple-consumer-test的消费者的网络连接,nameserve地址为10.45.47.168:9876
sh mqadmin consumerConnection -n 10.45.47.168:9876 -g simple-consumer-test
15.查看订阅组消费状态
指令:consumerProgress
举例:查询当前属于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
ZBPTxamplecrm-1680220
ZBPTxamplecrm-1681000
ZBPTxamplecrm-1682000
ZBPTxamplecrm-1683000
ZBPTxamplecrm-1684000
ZBPTxamplecrm-1685000
ZBPTxamplecrm-1686000
ZBPTxamplecrm-1687000
Consume TPS: 0
Diff Total: 0
16.查看集群消息
指令:clusterList
举例:查询当前集群状态,nameserve地址为10.45.47.168:9876
sh mqadmin clusterList -n 10.45.47.168:9876
打印内容:
#Cluster Name#Broker Name#BID#Addr#Version#InTPS#OutTPS
CRMcrm-168010.45.47.168:10911V3_0_70.000.00
CRMcrm-181010.45.47.181:10911V3_0_70.000.00
sh mqadmin clusterList -n 10.45.47.168:9876 –m
#Cluster Name#Broker Name#InTotalYest#OutTotalYest#InTotalToday#OutTotalToday
CRMcrm-1680023
CRMcrm-1810000
17.添加(更新)KV配置信息
指令:updateKvConfig
举例:在上nameserver上修改KV配置,nameserve地址为10.45.47.168:9876
sh mqadmin updateKvConfig -n
10.45.47.168:9876 -k messageDelayLevel -v 1s 5s 10s 30s 1m 2m 3m 4m 5m
6m 7m 8m 9m 10m 20m 30m 45m 1h 2h 6h
18.删除KV配置信息
指令:deleteKvConfig
举例:在上nameserver上修改KV配置,nameserve地址为10.45.47.168:9876
sh mqadmin deleteKvConfig -n 10.45.47.168:9876 -k messageDelayLevel
19.获取Consumer消费进度
该命令只打印当前与cluster连接的consumer的消费进度
指令:getConsumerStatus
举例:查询属于group(消费者组)=simple-consumer-test的消费者在Topic=ZBPTxample上的消费状态,nameserve地址为10.45.47.168:9876
sh mqadmin getConsumerStatus -n 10.45.47.168:9876 -g simple-consumer-test -t ZBPTxampleget consumer status from client. group=simple-consumer-test, topic=ZBPTxample, originClientId=
#clientId#brokerName#queueId#offset
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16840
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16802
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16830
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16810
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16850
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16860
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16870
10.45.46.229@simple-consumer-test-3f89fb692e874640crm-16820
注意事项
在broker配置文件中有自动开启自动创建topic和consumer这两个选项,在测试环境建议设置问true在生产环境建议关闭设置为false。
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
说明:尤其注意双主模式下两个broker名字不能相同。
高危操作
未经评审删除topic或者consumer,删除store或者制空store目录下的文件。
网友评论