
2.4 常用管理命令
MQAdmin是RocketMQ自带的命令行管理工具,在bin目录下,运行mqadmin即可执行。使用mqadmin命令,可以进行创建、修改Topic,更新Broker的配置信息,查询特定消息等各种操作。本节将介绍几个常用的命令。
1.创建/修改Topic
消息的发送和接收都要有对应的Topic,需要向某个Topic发送或接收消息,所以在正式使用RocketMQ进行消息发送和接收前,要先创建Topic,创建Topic的指令是updateTopic,表2-1列出了支持的参数。
表2-1 updateTopic

2.删除Topic
与创建/修改Topic对应的是删除Topic,把RocketMQ系统中不用的Topic彻底清除,指令是deleteTopic,表2-2列出了支持的参数。
表2-2 deleteTopic

3.创建/修改订阅组
订阅组在提高系统的高可用性和吞吐量方面扮演着重要的角色,比如用Clustering模式消费一个Topic里的消息内容时,可以启动多个消费者并行消费,每个消费者只消费Topic里消息的一部分,以此提高消费速度,这个时候就是通过订阅组来指明哪些消费者是同一组,同一组的消费者共同消费同一个Topic里的内容。订阅组可以被自动创建,使用这个命令一般是用来修改订阅组,指令是updateSubGroup,表2-3列出了支持的参数。
表2-3 updateSubGroup

4.删除订阅组
与创建或修改订阅组相对应,这个命令删除不再使用的订阅组,指令是deleteSubGroup,表2-4列出了支持的参数。
表2-4 deleteSubGroup

5.更新Broker配置
Broker有很多的配置信息,在Broker启动时,可以通过配置文件来指定配置信息。有些配置信息支持在Broker运行的时候动态更改,更改指令是updateBrokerConfig,表2-5列出了支持的参数。
表2-5 updateBrokerConfig

6.更新Topic的读写权限
RocketMQ支持对Topic进行权限控制,主要分为只读的Topic和可读写的Topic,权限可以通过指令updateTopicPerm来动态改变,表2-6列出了支持的参数。
表2-6 updateTopicPerm

7.查询Topic的路由信息
Topic的路由信息指的是某个Topic所在的Broker相关信息,客户端可以通过NameServer来获取这些信息,本命令一般在调试的时候使用,指令是TopicRoute,表2-7列出了支持的参数。
表2-7 TopicRoute

8.查看Topic列表信息
上面提到的TopicRoute是列出某个Topic的相关信息,还有个指令TopicList用来列出集群中所有Topic的名称,表2-8列出了支持的参数。
表2-8 TopicList

9.查看Topic统计信息
在使用RocketMQ的时候,经常需要查看某个Topic的状态,看看消息的数量,有多少未处理等,此时可以通过指令TopicStats来查询,表2-9列出了支持的参数。
表2-9 TopicStats

10.根据时间查询消息
一条消息被发送到RocketMQ后,默认会带上发送的时间戳,所以我们可以根据估计的时间来查询消息,指令是printMsg,表2-10列出了支持的参数。
表2-10 printMsg

11.根据消息ID查询消息
根据消息ID可以精确定位到某条消息,但是消息ID需要通过其他方式来获取,比如可以先用时间来查询出一些消息,然后定位到要找的具体某个消息,指令是queryMsgById,表2-11列出了支持的参数。
表2-11 queryMsgById

12.查看集群消息
指令clusterList用来列出集群的状态,看看有哪些Broker在提供服务,表2-12列出了支持的参数。
表2-12 clusterList
