mqadmin管理工具
1、执行命令方法: ./mqadmin {command} {args}
2、几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port
3、几乎所有命令都可以通过-h获取帮助
4、如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执行命令,如果不配置Broker地址,则对集群中所有主机执行命令,只支持一个Broker地址。-b格式为ip:port,port默认是10911
5、在tools下可以看到很多命令,但并不是所有命令都能使用,只有在MQAdminStartup中初始化的命令才能使用,你也可以修改这个类,增加或自定义命令
6、由于版本更新问题,少部分命令可能未及时更新,遇到错误请直接阅读相关命令源码
7、查看集群信息:可以查看Clustername和brokerName的信息
sh mqadmin clusterList -n 111.x.xx.xxx:9876
8、创建topic:
sh mqadmin updateTopic -c Clustername -n localhost:9876 -t zytesttopic
9、查看topic列表:
sh mqadmin topicList -n 111.x.xx.xxx:9876
10、查看指定topic路由信息:
sh mqadmin topicRoute -n 111.x.xx.xxx:9876 -t testtopic1
11、查看指定topic状态:
sh mqadmin topicStatus -n 11.x.xx.xxx:9876 -t testtopic1
12、创建消费者组:
sh mqadmin updateSubGroup -n localhost:9876 -c DefaultCluster -g testzygroup1
13、查看消费者组:查看订阅组消费状态
sh mqadmin consumerProgress -n localhost:9876
14、删除订阅组:
sh mqadmin deleteSubGroup -c DefaultCluster -n 127.0.0.1:9876 -g testzygroup1
15、发送消息:
mqadmin sendMessage -n 111.x.xx.xxx:19876 -t topic01 -p 'hello messagebody' -c tagtest -k keytest
16、消费消息:
sh mqadmin consumeMessage -n 111.x.xx.xxx:9876 -t zytesttopic -b rocketmq02-broker-0 -c 1 -g subzygroup1
Topic相关
启动集群
[root@node1 ~]# nohup sh mqnamesrv &
[root@node1 ~]# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2ssync/broker-a.properties &
[root@node2 ~]# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2ssync/broker-a-s.properties &
[root@node3 ~]# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2ssync/broker-b.properties &
[root@node4 ~]# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2ssync/broker-b-s.properties &
命令列表
updateTopic
作用:修改或创建一个Topic
命令:mqadmin updateTopic -b | -c [-h] [-n ] [-o ] [-p ] [-r ] [-s ] -t [-u ] [-w ]
参数 | 含义 | 备注 |
-b,–brokerAddr | broker 地址,表示topic 建在该broker | 如果-c为空,则必填 |
-c,–clusterName | cluster 名称,表示topic 建在该集群 | 如果-b为空,则必填 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | name server地址列表 | 以分号分割,例如:192.168.0.1:9876;192.168.0.2:9876 |
-o,–order | 设置topic是否为有序的 | 取值:true、false(默认) |
-p,–perm | 设置topic的权限 | 取值:2、4、6;含义:2-W、4-R、6-RW(默认) |
-r,–readQueueNums | 设置可读队列数 | 默认为8 |
-s,–hasUnitSub | 设置是否有unit sub | 取值:true、false |
-t,–topic | 设置topic名称 | 名称只能使用字符 ^[a-zA-Z0-9_-]+$ |
-u,–unit | 设置是否为unit topic | 取值:true、false |
-w,–writeQueueNums | 设置可写队列数 | 默认为8 |
注意:
- -b 和–brokerAddr 是等价的,-b是缩写,其余同理;(后面的全称都是两个短横线,由于md自动转译了,就不一一改了,太多了)
- 本文所有配置信息,基于RocketMQ 4.7.1整理;
- 一般来说[]内的参数为可选参数,但是经过验证,不指定nameserver地址,是会报错的;
示例:
[root@localhost-001 bin]
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
create topic to 172.24.30.194:10911 success.
create topic to 172.24.30.193:10911 success.
create topic to 172.24.30.192:10911 success.
TopicConfig [topicName=zhurunhua, readQueueNums=8, writeQueueNums=8, perm=RW-, topicFilterType=SINGLE_TAG, topicSysFlag=0, order=false]
[root@localhost-001 bin]
deleteTopic
作用:从broker和nameserver删除topic
命令:mqadmin deleteTopic -c [-h] [-n ] -t
参数 | 含义 | 备注 |
-c,–clusterName | 指定cluster名称 | |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | name server地址列表 | 以分号分割,例如:192.168.0.1:9876;192.168.0.2:9876 |
-t,–topic | 设置topic名称 |
示例:
1 | [root@localhost-001 bin] |
topicList
作用:从nameserver列出所有topic
命令:mqadmin topicList [-c] [-h] [-n ]
参数 | 含义 | 备注 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-c,–clusterModel | 指定cluster模式 |
示例:
1 | [root@localhost-001 bin] |
updateTopicPerm
作用:更新topic权限
命令:mqadmin updateTopicPerm [-b ] [-c ] [-h] [-n ] -p -t
参数 | 含义 | 备注 |
-b,–brokerAddr | 设置更新哪个broker | |
-c,–clusterName | 设置更新哪个cluster | |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-p,–perm | 设置topic的权限 | 取值:2、4、6;含义:2-W、4-R、6-RW |
-t,–topic | 设置修改的topic名称 |
示例:
1 | [root@localhost-001 bin] |
注意:需要同时指定nameserver和brokerAddr
topicRoute
作用:检查topic路由信息
命令:mqadmin topicRoute [-h] [-n ] -t
参数 | 含义 | 备注 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-t,–topic | topic名称 |
示例:
1 | [root@localhost-001 bin] |
topicStatus
作用:检查topic的状态信息
命令:mqadmin topicStatus [-h] [-n ] -t
参数 | 含义 | 备注 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-t,–topic | topic名称 |
示例:
1 | [root@localhost-001 bin] |
topicClusterList
作用:获取topic的集群信息
命令:mqadmin topicClusterList [-h] [-n ] -t
参数 | 含义 | 备注 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-t,–topic | topic名称 |
示例:
1 | [root@localhost-001 bin] |
cleanUnusedTopic
作用:清理未使用的topic
命令:mqadmin cleanUnusedTopic [-b ] [-c ] [-h] [-n ]
参数 | 含义 | 备注 |
-h,–help | 打印help信息 | |
-n,–namesrvAddr | nameserver服务地址列表 | |
-b,–brokerAddr | broker地址 | |
-c,–cluster | 集群名称 |
示例:
1 | [root@localhost-001 bin] |
注意:需同时指定nameserver和broker地址,若只指定了nameserver,会报错:wait response on the channel <172.24.30.192:9876> timeout, 4904(ms)
具体操作
# 查看指定NameServer下的主题
[root@node4 ~]# mqadmin topicList -n node1:9876
# 查看指定NameServer,指定集群名称下的主题
[root@node4 ~]# mqadmin topicList -n node1:9876 -c DefaultCluster
# 创建主题,指定NameServer,指定Broker 指定主题名称,指定主题的写队列个数,指定读主题队
列个数
[root@node4 ~]# mqadmin updateTopic -b node1:10911 -r 3 -w 3 -t tp_admin_01
# 描述主题,指定NameServer,指定主题名称
[root@node4 ~]# mqadmin topicStatus -t tp_admin_01 -n node1:9876
# 创建主题,指定NameServer,指定集群名称,指定主题名称,指定读主题队列个数,指定写主题队
列个数
[root@node4 ~]# mqadmin updateTopic -c DefaultCluster -n node1:9876 -r 3 -w
3 -t tp_admin_02
# 查看指定主题的状态,指定NameServer地址,指定主题名称
[root@node4 ~]# mqadmin topicStatus -t tp_admin_02 -n node1:9876
#删除主题,指定NameServer地址,指定集群名称,指定主题名称
[root@node3 ~]# mqadmin deleteTopic -n node1:9876 -c DefaultCluster -t
tp_admin_03
# 查看主题所在的集群,指定NameServer地址,指定主题名称。因为不同集群可以拥有同名的主题,
并且不同集群可以注册到同一个NameServer
[root@node3 ~]# mqadmin topicClusterList -n node1:9876 -t tp_admin_02
# 计算消费的负载均衡,不同的-i列表,计算不同的消费平衡负载结果
[root@node3 ~]# mqadmin allocateMQ -n node1:9876 -t tp_admin_02 -i
node1,node3
[root@node3 ~]# mqadmin allocateMQ -n node1:9876 -t tp_admin_02 -i
node1,node2,node3,node4
# 打印Topic订阅关系、TPS、积累量、24h读写总量等信息
[root@node3 ~]# mqadmin statsAll -n node1:9876
集群相关
# 查看集群信息,集群、BrokerName、BrokerId、TPS等信息
[root@node3 ~]# mqadmin clusterList -n node1:9876 -i 1 -m
# 检查集群中broker的延迟。
[root@node3 ~]# mqadmin clusterRT -a 5 -s 1048576 -c DefaultCluster -p true -
i 2 -n node1:9876
Broker相关
# 查看broker状态
[root@node3 ~]# mqadmin brokerStatus -b node1:10911
[root@node3 ~]# mqadmin brokerStatus -n node1:9876 -b node2:10911
# 修改节点的配置,配置文件也会修改
[root@node3 ~]# mqadmin updateBrokerConfig -n node1:9876 -b node2:10911 -c
DefaultCluster -k brokerRole -v ASYNC_MASTER -k brokerId -v 0 -k brokerName
-v 'broker-c'
# 获取Broker配置
[root@node1 ~]# mqadmin getBrokerConfig -n node1:9876 -b node3:10911
# 清理Broker上不使用的Topic,从内存中释放Topic的Consume Queue,如果手动删除Topic会产
生不使用的Topic
[root@node1 ~]# mqadmin cleanUnusedTopic -n node1:9876 -b node1:10911 -c
DefaultCluster
# 向Broker发消息,返回发送状态和RT
[root@node3 ~]# mqadmin sendMsgStatus -n node1:9876 -b broker-b -s 128 -c 5
消息相关
# 根据MsgKey查询消息,指定NameServer地址,指定主题名称,指定MsgKey
[root@node3 ~]# mqadmin queryMsgByKey -n node1:9876 -t tp_admin_01 -k 00100
# 根据UNIQ_KEY查询消息,指定NameServer地址,指定UNIQ_KEY,指定消费组名称,指定主题名
称 [r
oot@node3 ~]# mqadmin queryMsgByUniqueKey -n node1:9876 -i
C0A864672C8B277050DC5F8417BA0000 -g test_grp_console -t tp_admin_01
# 发送检查消息延迟,指定NameServer,指定主题,指定测试次数,指定消息大小,默认128KB
[root@node3 ~]# mqadmin checkMsgSendRT -n node1:9876 -t tp_admin_01 -a 5 -s
128
# 指定发送消息的大小,以测试延迟 1MB
[root@node3 ~]# mqadmin checkMsgSendRT -n node1:9876 -t tp_admin_01 -a 5 -s
1048576
# 消费消息,指定NameServer,指定主题,指定broker名称,指定MQ的id。
[root@node3 ~]# mqadmin consumeMessage -n node1:9876 -t tp_admin_01 -o 0 -b
broker-a -i 0
# 发送消息,指定主题,指定NameServer地址,指定消息体
[root@node3 ~]# mqadmin sendMessage -n node1:9876 -t tp_admin_01 -p 'hello
lagou console'
# 发送消息,指定主题,指定NameServer地址,指定消息体,指定keys,指定tags
[root@node3 ~]# mqadmin sendMessage -n node1:9876 -t tp_admin_01 -p 'hello
lagou console' -k '00100' -c 'test'
# 发送消息,指定NameServer,指定消息体,指定Broker,指定主题
[root@node3 ~]# mqadmin sendMessage -n node1:9876 -p 'hello lagou test 01'
-b broker-a -i 0 -t 'tp_admin_01'
# 查看偏移量,指定NameServer,指定主题
[root@node1 ~]# mqadmin topicStatus -n node1:9876 -t tp_admin_01
# 打印消息,指定NameServer地址,指定主题,指定标签过滤,指定是否打印消息体
[root@node3 ~]# mqadmin printMsg -n node1:9876 -t tp_admin_01 -s "*" -d
true