RecoketMQ管理命令之Topic管理

前置说明:

  • 本文中的所有命令皆是基于当前最新稳定版 Apache RocketMQ 5.1.1 版本;
  • 本文中的所有示例命令皆是在基于已正确配置 RocketMQ 的环境变量为前提。

一、创建或修改Topic

 使用updateTopic命令可以在指定集群中创建或修改特定的 Topic。

注意:

  1. 具体此次操作是创建还是修改,取决目标位置的 topic 是否已存在,若不存在,则是创建,反之则为修改。

 以 NameServer 地址为192.168.1.1:9876、集群名为DefaultCluster为例,其创建或修改的具体示例命令为:

  • 在集群下的所有broker中创建或修改

    mqadmin updateTopic -n 192.168.1.1:9876 -c DefaultCluster -t TOPIC_NAME
    

     即表示在 DefualtCluster 的集群中,创建或重置一个名为 TOPIC_NAME 的 topic。

    注意:执行完成后,最好再使用 topicRoute 命令确认一下执行结果。

  • 在指定的broker中创建或修改

    mqadmin updateTopic -n 192.168.1.1:9876 -b 192.168.1.3:10911 -t TOPIC_NAME -w 4 -r 4
    

     上述命令表示在通信地址为 192.168.1.3:10911 的 broker 组中,创建或重置一个名为 TOPIC_NAME 的 topic,并将该 broker 组的读写队列数皆设为 4 个。

    注意:执行完成后,最好再使用 topicRoute 命令确认一下执行结果。

 更多组合方式,请参考该命令的详细选项表(下表所示)自行组合:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
-t--topic目标Topic名称
-c--clusterName
-b至少需要一个
作用于集群的集群名称
-b--brokerAddr
-c至少需要一个
作用于的broker地址(不支持多个地址)
例如:192.168.0.3:10911
-w--writeQueueNums位于每个broker组的写队列数量
默认值为:8
-r--readQueueNums位于每个broker组的读队列数量
默认值为:8
-p--permission队列的权限级别,默认值为:6
[2:只写 4:只读 6:读写]
-o--order是否为顺序topic,默认值为:false
[true:是 false:否]
-u--unit是否为
-s--hasUnitSub
-a--attributes
-h--help打印帮助

二、查看Topic列表信息

 使用topicList命令可以从指定的 NameServer 上拉取 Topic 清单列表。

 以 NameServer 地址为192.168.1.1:9876为例,查看的具体命令为:

mqadmin topicList -n 192.168.1.1:9876 -c

打印的结果示例如下:

#Cluster Name       #Topic                                  #Consumer Group
DefaultCluster      rmq_sys_SYNC_BROKER_MEMBER_broker-b
DefaultCluster      rmq_sys_SYNC_BROKER_MEMBER_broker-a
DefaultCluster      TOPIC_NAME

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-c--clusterModel以集群模式显示Topic列表
-h--help打印帮助

三、查看Topic所在集群列表

 使用topicClusterList命令可以从指定的 NameServer 上获取指定 Topic 所在集群的列表清单。

 以 NameServer 地址为192.168.1.1:9876为例,其查看的具体命令为:

mqadmin topicClusterList -n 192.168.1.1:9876 -t TOPIC_NAME

 打印的结果示例如下:

DefaultCluster

 即表示名为 TOPIC_NAME 的 topic 仅位于名为 DefaultCluster 的集群中。

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-t--topic目标Topic名称
-h--help打印帮助

四、查看Topic路由信息

 使用topicRoute命令可以从指定的 NameServer 上获取指定 Topic 的路由信息。

 以 NameServer 地址为192.168.1.1:9876为例,其查看的具体命令为:

mqadmin topicRoute -n 192.168.1.1:9876 -t TOPIC_NAME -l

打印的示例结果如下:

#ClusterName     #BrokerName   #BrokerAddrs                                 #ReadQueue   #WriteQueue   #Perm
DefaultCluster   broker-a      {0=192.168.1.2:10911, 1=192.168.1.3:10911}   4            4             6
DefaultCluster   broker-b      {0=192.168.1.4:10911, 1=192.168.1.5:10911}   4            4             6
------------------------------------------------------------------------------------------------------------
Total:           2                                                          8            8

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-t--topic目标Topic名称
-l–list使用列表格式打印路由信息(否则返回JSON数据)
-h--help打印帮助

五、查看Topic的队列位移

 使用topicStatus命令可以从指定的 NameServer 上获取指定 Topic 的队列位移信息。

 以 NameServer 地址为192.168.1.1:9876为例,其查看的详细命令为:

mqadmin topicStatus -n 192.168.1.1:9876 -t TOPIC_NAME

打印的结果示例如下:

#Broker Name    #QID   #Min Offset   #Max Offset   #Last Updated
broker-a        0      0             188871        2023-05-25 10:31:52,716
broker-a        1      0             178882        2023-05-25 10:31:52,716
broker-a        2      0             178880        2023-05-25 10:31:52,718
broker-a        3      0             178879        2023-05-25 10:31:52,713
broker-b        0      0             51285         2023-05-25 10:31:52,714
broker-b        1      0             51284         2023-05-25 10:31:52,715
broker-b        2      0             51284         2023-05-25 10:31:52,716
broker-b        3      0             51283         2023-05-25 10:31:52,716

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-t--topic目标Topic名称
-h--help打印帮助

六、计算消费者对Topic的负载结果

 使用allocateMQ命令可以以平均负载算法计算消费者列表负载消息队列的负载结果。

 以 NameServer 地址为192.168.1.1:9876为例,其计算的具体命令为:

mqadmin allocateMQ -n 192.168.1.1:9876 -t TOPIC_NAME -i 192.168.1.15

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-t--topic目标Topic名称
-i--ipListIP地址列表(用逗号分隔)
计算这些IP去负载topic的消息队列
-h--help打印帮助

七、统计Topic指标

 使用statsAll命令可以对指定的 NameServer 上的 topic 进行指标统计,以打印 topic 的订阅关系、TPS、积压量和24小时内的读写总量信息。

 以 NameServer 地址为192.168.1.1:9876为例,其指标统计的具体命令为:

mqadmin statsAll -n 192.168.1.1:9876 -a

 打印的示例结果如下:

#Topic      #Consumer Group   #Accumuation   #InTPS   #OutTPS   #InMsg24Hour  #OutMsg24Hour
TOPIC_NAME  group_test                       0.00     0.00      2000          2331

 下表对上述打印的示例结果中的各列名进行说明:

序号列名描述
1TopicTopic名称
2Consumer Group订阅该topic的消费者组名称
3Accumuation积压的消息量
4InTPS生产者TPS
5OutTPS消费者TPS
6InMsg24Hour24小时内生产的消息总量
7OutMsg24Hour24小时内消费的消息总量

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-t--topic仅打印指定的Topic(否则显示所有Topic)
-a--activeTopic仅打印活动的Topic
-h--help打印帮助

八、变更Topic读写权限

 使用updateTopicPerm命令可以从变更指定 topic 的读写权限。

 以 NameServer 地址为192.168.1.1:9876、集群名为DefaultCluster为例,将名为TOPIC_NAME的 topic 的变更为只能进行消费的 topic,其变更的具体命令是:

mqadmin updateTopicPerm -n 192.168.1.1:9876 -c DefaultCluster -t TOPIC_NAME -p 4

 执行后的打印结果示例如下:

update topic perm from 6 to 2 in 192.168.1.3:10911 success.
update topic perm from 6 to 2 in 192.168.1.4:10911 success.
update topic perm from 6 to 2 in 192.168.1.5:10911 success.
update topic perm from 6 to 2 in 192.168.1.6:10911 success.

九、删除Topic

 使用deleteTopic命令可以从特定的集群中删除指定 Topic 的信息。

 以 NameServer 地址为192.168.1.1:9876、集群名为DefaultCluster为例,其删除的具体命令是:

mqadmin deleteTopic -n 192.168.1.1:9876 -c DefaultCluster -t TOPIC_NAME

 当打印的结果如下示例时,则表示删除成功:

delete topic [TOPIC_NAME] from cluster [DefaultCluster] success.
delete topic [TOPIC_NAME] from NameServer success.

 该命令的详细选项如下表所示:

选项简写选项全称必需带参说明
-n--namesrvAddrNameServer服务地址列表
例如:‘192.168.0.1:9876;192.168.0.2:9876’
-c--clusterName从哪个集群中删除
-t--topic目标Topic名称
-h--help打印帮助
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值