RecoketMQ管理命令之Topic管理

news/2024/11/15 2:27:17/

前置说明:

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

一、创建或修改Topic

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

注意:

  1. 具体此次操作是创建还是修改,取决目标位置的 topic 是否已存在,若不存在,则是创建,反之则为修改;
  2. 在对已存在的 topic 进行修改操作时,也需指定所有的配置项,否则一律使用默认值将其重置;
  3. 可以简单的将此命令的原理理解成:先尝试删除原 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--writeQueueNames位于每个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打印帮助

http://www.ppmy.cn/news/90451.html

相关文章

day 5

1.总结变量的类型及含义? 变量类型: 1,自定义变量: 在当前的shell命令行界面设置的变量是局部变量 例: num1 namezhangsan 含义:仅在当前shell生效. 2,环境变量: 全局变量,通过export 导出后的局部变量是全局变量 例: …

Ubuntu下通过.sh文件同时启动多个程序系列2—启动多个终端分别运行不同指令或者程序

Ubuntu下通过.sh文件启动多个终端分别运行不同指令或者程序 说明步骤1.创建.sh文件2.输入内容3.赋予可执行权限4.测试 解释 说明 项目上经常遇到需要到开多个终端分别启动不用程序,这里简单介绍一个方法,通过.sh文件,同时启动多个程序 步骤…

功率信号源的使用方法有哪些

功率信号源是一种常见的电子设备,主要用于产生各种功率信号,例如直流信号、正弦信号等。功率信号源广泛应用于工业、科研、医疗等领域,例如电机驱动、电子仪器仪表、医疗设备等。本文将详细介绍功率信号源的使用方法和注意事项。 图&#xff…

大数据课程-学习二十周总结

4.2.10.hive表中的数据导出 将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 4.2.10.1.insert导出 1)将查询的结果导出到本地 insert overwrite local directory ‘/export/data/exporthive’ sel…

科技云报道:汽车云,云计算换挡后的下一个“赛点”?

科技云报道原创。 从去年开始,汽车云似乎成为了云计算赛道的“香饽饽”。 尤其是在下半年,无论是阿里、腾讯、华为三大云巨头,还是百度云、京东云、字节云等奋力争夺“第四朵云”的玩家,均已各种形式“刷新”了其汽车云战略。玩…

制船业智慧转型,3D轻量化工具赋能数字化!

随着科技的不断进步,计算机辅助设计(CAD)和三维建筑模型技术在造船业中扮演着重要角色。造船业是一个复杂而庞大的行业,涉及到船舶设计、建造模型、制造和施工等多个环节。 为了提高效率、降低成本并保证质量,传统的手…

std::forward_list与std::advance使用

std::forward_list 是 C11 中引入的一个单向链表容器,它可以在常数时间内插入和删除元素,但不能随机访问元素。std::forward_list 的用法与其他 STL 容器类似,可以使用迭代器来遍历和操作容器中的元素。 以下是 std::forward_list 的一些常用…

好程序员:web前端学习要多久?自学前端能找到工作吗?

不少小伙伴看到前端这个岗位发展前景好,薪资待遇高,工作相对稳定,很多人都想转行学前端,但好程序员想说的是,这些都不了解,你怎么能把前端学会呢。所以想要转行学前端的小伙伴们还是赶紧收藏这篇文章吧~ 一…