中间件

mq运维操作

2019-01-12  本文已影响17人  lockdreamer

常用维护操作---详细命令

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目录下的文件。

上一篇下一篇

猜你喜欢

热点阅读