mq运维操作

作者: lockdreamer | 来源:发表于2019-01-12 17:29 被阅读17次

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

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

    相关文章

      网友评论

        本文标题:mq运维操作

        本文链接:https://www.haomeiwen.com/subject/piatdqtx.html