1. 前言

本文主要为RocketMQ的大部分客户端运维命令的基本使用示例,文中使用的参数为最少必须参数,相关参数会有简单介绍。

本文说明的命令基于RocketMQ的3.5.8版本,有些命令可能在更低版本中并不存在。

运维命令脚本放在bin目录下。

本文使用的测试集群为2m-noslave集群。

笔者会尽量把大部分的命令举例说明,但是每个命令的具体参数说明,请通过--help查看或者查阅其它相关资料。

2. 命令简单示例及说明

1、updateTopic

该命令执行会在broker所在机器创建一个新的topic,若topic已存在,则会更新topic的属性

命令示例:

sh mqadmin updateTopic -t TopicTest -c DefaultCluster -n 192.168.0.1:9876 mqadmin updateTopic -t TopicTest -c DefaultCluster -n 192.168.0.1:9876

操作结果:

create topic to 192.168.0.1:10911 success.create topic to 192.168.0.2:10911 success.TopicConfig [topicName=TopicTest, readQueueNums=8, writeQueueNums=8, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false

  • 创建topic时使用-b参数指定broker的地址,可以指定在哪个broker上创建。如果使用-c参数指定集群名称,则可以为该集群上的每一个broker都创建一份topic信息。建议使用-c指定集群名称,减少分别在不同的broker上创建手误导致topic属性不同的概率,如果是对集群扩容,则可以通过指定新的broker地址在扩容的机器上创建一份新的topic信息

  • 使用该命令创建topic的读写队列数默认为8,可以通过-r -w指定topic的读写队列数。注意:该命令创建topic的默认队列数无法通过任何配置更改,除非修改源码。

  • 其它参数说明查看--help

2、updateSubGroup

该命令执行会在broker所在机器创建一个新的订阅组,若订阅组已存在,则会更新订阅组的属性

命令示例:

sh mqadmin updateSubGroup -c DefaultCluster -g TopicTestGroup -n 192.168.0.1:9876 mqadmin updateSubGroup -c DefaultCluster -g TopicTestGroup -n 192.168.0.1:9876

操作结果:

create subscription group to 192.168.0.1:10911 success.create subscription group to 192.168.0.2:10911 success.SubscriptionGroupConfig [groupName=TopicTestGroup, consumeEnable=true, consumeFromMinEnable=false, consumeBroadcastEnable=false, retryQueueNums=1, retryMaxTimes=16, brokerId=0, whichBrokerWhenConsumeSlowly=1]

  • 创建订阅组时使用-b参数指定broker的地址,可以指定在哪个broker上创建。如果使用-c参数指定集群名称,则可以为该集群上的每一个broker都创建一份新的订阅组信息。建议使用-c指定集群名称,减少分别在不同的broker上创建订阅组时手误导致每个机器上的订阅组属性不同的概率,如果是对集群扩容,则可以通过指定新的broker地址在扩容的机器上创建一份新的订阅组信息

  • 不指定消费模型时,默认为集群消费

  • 创建该订阅组时并不会同时创建重试topic,但是该订阅组第一次订阅topic成功时,会创建一个重试topic

  • 其它参数说明使用--help查看

3、deleteTopic

从Broker和Name Server删除Topic

命令示例:

sh mqadmin deleteTopic -t TopicTest -c DefaultCluster -n 192.168.0.1:9876 mqadmin deleteTopic -t TopicTest -c DefaultCluster -n 192.168.0.1:9876

操作结果:

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

该命令执行完成后会将指定集群下的所有broker节点的topic信息删除,并清除指定地址的name server上该topic的路由信息。所以name server是一个集群的话,请指定集群地址,否则未指定的name server的topic路由信息可能经过broker一个心跳时间后清除。未被清除的那段时间内,生产者依然可以从name server上获取到topic路由信息,正常发送消息。但是发送过程中不会有异常,broker接收到消息处理的时候才会失败,并将结果响应给客户端。

4、deleteSubGroup

从Broker删除订阅组

命令示例:

sh mqadmin deleteSubGroup -g topicTestGroup -c DefaultCluster -n 192.168.0.1:9876 mqadmin deleteSubGroup -g topicTestGroup -c DefaultCluster -n 192.168.0.1:9876

操作结果:

delete subscription group [topicTestGroup] from broker [192.168.0.1:10911] in cluster [DefaultCluster] success.delete subscription group [topicTestGroup] from broker [192.168.0.2:10911] in cluster [DefaultCluster] success.delete topic [%RETRY%topicTestGroup] from cluster [DefaultCluster] success.delete topic [%RETRY%topicTestGroup] from NameServer success.delete topic [%DLQ%topicTestGroup] from cluster [DefaultCluster] success.delete topic [%DLQ%topicTestGroup] from NameServer success

将指定订阅组从broker删除,同时将使用该订阅组名称创建的重试topic及死信topic信息统统清除

5、updateBrokerConfig

更新broker的属性配置

命令示例:

sh mqadmin updateBrokerConfig -c DefaultCluster -n 192.168.0.1:9876 -k listenPort -v 10911 mqadmin updateBrokerConfig -c DefaultCluster -n 192.168.0.1:9876 -k listenPort -v 10911

操作结果:

update broker config success, 192.168.0.1:10911update broker config success, 192.168.0.2:10911

该命令执行一次,会同时操作于指定集群下的所有Broker。k是broker配置的key值,v是对应的value值,如果想看broker的所有配置,可以执行sh mqbroker -p,注意指定定打印的文件,否则会把启动broker时读取的配置文件覆盖。

注意,该命令一定慎用,另外不要像示例一样修改监听端口,虽然不重启并不起作用,另外也不要修改像brokerName这样的属性,否则会对运行中的集群产生影响的,影响范围包括name server.

其它参数使用--help查看。

6、updateTopicPerm

更新Topic权限

命令示例:

sh mqadmin updateTopicPerm -c DefaultCluster -n 192.168.0.1:9876 -p 6 -t TopicTest mqadmin updateTopicPerm -c DefaultCluster -n 192.168.0.1:9876 -p 6 -t TopicTest

操作结果:

update topic perm from 4 to 6 in 192.168.0.1:10911 success.update topic perm from 4 to 6 in 192.168.0.2:10911 success.

该命令执行一次,会对指定集群下的所有Broker的指定Topic的权限更改

部分参数说明:

参数 是否必填 说明
-p 2:R(可读)、4:W(可写)、6:RW(可读可写)

其它参数说明使用--help查看

7、topicRoute

查看Topic路由信息

命令示例:

sh mqadmin topicRoute -n 192.168.0.1:9876 -t TopicTest mqadmin topicRoute -n 192.168.0.1:9876 -t TopicTest

操作结果会展示broker上报给name server的topic路由信息, 这个命令就这两个参数

8、topicStatus

查看Topic状态信息

命令示例:

sh mqadmin topicStatus -n 192.168.0.1:9876 -t TopicTest

操作结果:

Broker Name #QID #Min Offset #Max Offset #Last Updated

展示的数据有如上几个字段,Min Ofset:队列消息最小偏移量,Max Offset:队列的最大偏移位置,QID是哪条队列,这个命令也就只有这两个参数,参数的说明可以使用--help查看

9、topicClusterList

查询Topic所属集群

命令示例:

sh mqadmin topicClusterList -n 192.168.0.1:9876 -t TopicTest mqadmin topicClusterList -n 192.168.0.1:9876 -t TopicTest

操作结果:

DefaultCluster

10、brokerStatus

Broker运行状态信息

命令示例:

sh mqadmin brokerStatus -n 192.168.0.1:9876 -b 192.168.0.1:10911 mqadmin brokerStatus -n 192.168.0.1:9876 -b 192.168.0.1:10911

注意:

  • 这里面查询出来的数据有些是只在内存保留,并不会持久化的,所以重启broker后数据便会重置。

  • 也可以不用-b指定某个broker,可以使用-c指定某个集群,则查询该集群下所有broker运行状态信息

其它参数说明使用--help查看

11、queryMsgById

根据消息ID查询消息

命令示例:

sh mqadmin queryMsgById -n 192.168.0.1:9876 -i C0A8649800002A9F0000000000000000

操作结果:

Topic: TopicTest

Tags: [Tag]

Keys: [90c29e1e99264ca7b27403674ab80f01]

Queue ID: 0

Queue Offset: 0

CommitLog Offset: 0

Reconsume Times: 0

Born Timestamp:

Store Timestamp:

Born Host:

Store Host:

System Flag: 0

Properties: {TAGS=Tag, KEYS=90c29e1e99264ca7b27403674ab80f01, WAIT=true}

Message Body Path: /tmp/rocketmq/msgbodys/C0A8649800002A9F0000000000000000

-i属性是发送的消息ID,由客户端发送消息之后的发送结果中取得,由RocketMQ生成,业务系统不生成。该值理论是唯一的。

Message Body Path:在这个文件中存放的是字符串格式的消息体,可以直接查看。查询的时候才会生成这个文件 。

12、queryMsgByKey

根据消息key查询消息(推荐)

命令示例:

sh mqadmin queryMsgByKey -n 192.168.0.1:9876 -t TopicTest -k a6ba52f404bc4926940c958d0c99fd4d

操作结果:

Message ID #QID #Offset

C0A8649800002A9F000000000000068B 0 3

-k属性是发送的消息key值,可由发送消息时设置传入

需要服务器开启索引才支持。默认是支持的。

key值可以不唯一,所以根据key值查询的消息可能大于1条。因此在使用的时候,应当尽量保持该值的唯一性。

13、queryMsgByOffset

根据消息的偏移值来查询消息

命令示例:

sh mqadmin queryMsgByOffset -n 192.168.0.1:9876 -o 0 -t TopicTest -i 0 -b broker-a

操作结果:

queryMsgById的查询结果格式一样

部分参数说明:

参数 是否必填 说明
-o 队列偏移
-i 队列ID
-b Broker 名字

RocketMQ常用命令使用示例及说明相关推荐

  1. RocketMQ 常用命令实战

    本篇整理在运维 RocketMQ 集群时的常用命令,明白命令的含义,在集群运维时得心应手,下面命令均在实际环境中执行过. 集群命令汇总 集群列表 命令 clusterList 用于查看集群各个节点的运 ...

  2. AutoHotKey 常用命令及示例

    一.示例(自动打开QQ声音) Loop ;循环体 {WinWait, 与 qq009 交谈中,IfWinNotActive, 与 qq009 交谈中, , WinActivate, 与 qq009 交 ...

  3. redis 中 Hash哈希介绍 及常用命令 (附有示例)

    目录 一.Redis中Hash介绍 二.常用命令 三.示例 hset hget hmset   .. hexists hkeys hvals hincrbu hsetnx 四.redis中Hash底层 ...

  4. 【基础技术】【adb命令】adb原理与常用命令使用示例

    目录 1 adb是什么 1.1 adb组成 1.2 adb运行原理 2 adb常用命令 2.1 adb基础语法 2.2 常用命令 2.3 模拟按键输入 2.4 无线连接 2.5 dumpsys使用 2 ...

  5. [AHK]AutoHotKey 常用命令及示例

    一.示例(自动打开QQ声音) Loop ;循环体 { WinWait, 与 qq009 交谈中, IfWinNotActive, 与 qq009 交谈中, , WinActivate, 与 qq009 ...

  6. Docker架构、常用命令和示例

    文章内容参考了<Docker容器实战:原理.架构与应用>. 镜像和容器 容器:运行在操作系统上的一个进程,只不过加入了对资源的隔离和限制.在Docker中,其容器技术的三大核心功能:CGr ...

  7. rocketmq常用命令

    启动rocketmq [root@bogon /]# cd /usr/local/java/rocketmq/bin [root@bogon bin]# nohup sh mqnamesrv & ...

  8. linux日志汇总,Linux日志分析常用命令汇总(示例代码)

    1.查看当天有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc –l 2.查看某一个页面被访问的次数: grep "/index.php&quo ...

  9. 常用的linux命令与示例,linux常用命令及用法示例

    一. 帮助命令 1. 常用快捷键 快捷键 功能 ctrl + c 停止进程 ctrl+l 清屏:彻底清屏是:reset ctrl + q 退出 tab键 提示(更重要的是可以防止敲错) 上下键 查找执 ...

最新文章

  1. 【133天】尚学堂高淇Java300集视频精华笔记(71-72)
  2. Tensorflow源码解析2 -- 前后端连接的桥梁 - Session
  3. 如果我要...(开发版)
  4. nyoj1047欧几里得
  5. ubuntu16.04.3 ntp服务
  6. struts validator 基本知识 之 【出现错误信息的条数】。
  7. java设置时间_怎么用java设置系统时间?
  8. 企业大数据的主要竞争优势
  9. 算法导论习题C.2-7,C.2-8答案
  10. 计算机应用基础张宇答案,计算机应用基础电子教案教学课件作者张宇第5章自测题课件.doc...
  11. 软考项目管理十大管理及过程
  12. 想要走上巅峰?练好演讲也是必不可少的技能
  13. Office 2013
  14. 刘氏广传公家族七公子巨波公后裔V0.2
  15. Rust结伴学习 — 前言
  16. (OJ)Java面向对象-构造方法
  17. Enumeration
  18. 软件测试的过程和产生的文档
  19. java 切面 注解_十、使用注解定义切面
  20. Ubuntu 10.04环境下载编译Android-2.2.1 (froyo) 源代码 1/2

热门文章

  1. PVE开启硬件显卡直通功能
  2. C++图形化编程(五子棋)
  3. html 轮播图+二级菜单制作
  4. c语言代码表白_C语言学习日记(9)——用C语言写一个爱心吧
  5. 女人最让男人伤心的10句话
  6. 北邮通信原理期末试卷2022-2023
  7. macOS 12 CleanMyMac X 4.8.9 闪退解决办法
  8. 网页通过iframe嵌入百度地图API时自适应屏幕
  9. 计算几何(二):线段与直线,点与线,线与线的关系
  10. AspectJ中的org.aspectj.lang.JoinPoint接口的主要方法及使用