目 录CONTENT

文章目录

RocketMQ集群与运维

简中仙
2023-05-25 / 0 评论 / 0 点赞 / 49 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-07,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!

一、集群搭建方式

1、集群特点

NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。

Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。每个Broker与NameServer集群中的所有节点建立长连接,定时注册Topic信息到所有NameServer。

Producer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。

Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。

2、集群模式

1、单Master模式

这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。

2、多Master模式

一个集群无Slave,全是Master,例如2个Master或者3个Master,这种模式的优缺点如下:

  • 优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢),性能最高;
  • 缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到影响。

3、多Master多Slave模式(异步)

每个Master配置一个Slave,有多对Master-Slave,HA采用异步复制方式,主备有短暂消息延迟(毫秒级),这种模式的优缺点如下:

  • 优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,同时Master宕机后,消费者仍然可以从Slave消费,而且此过程对应用透明,不需要人工干预,性能同多Master模式几乎一样;
  • 缺点:Master宕机,磁盘损坏情况下会丢失少量消息。

4、多Master多Slave模式(同步)

每个Master配置一个Slave,有多对Master-Slave,HA采用同步双写方式,即只有主备都写成功,才向应用返回成功,这种模式的优缺点如下:

  • 优点:数据与服务都无单点故障,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高;
  • 缺点:性能比异步复制模式略低(大约低10%左右),发送单个消息的RT会略高,且目前版本在主节点宕机后,备机不能自动切换为主机。

二、集群的搭建

1、单Master模式

这是最简单也是风险最大的模式,一旦broker重启或宕机,整个服务不可用。不推荐在生产环境使用,一般用于开发或本地测试。

步骤如下:

1、启动NameServer

### 首先启动NameServer
$ nohup sh mqnamesrv &
 
### 检查Name Server是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

只要在namesrv.log中看到“The Name Server boot success.. ”就表示NameServer启动成功了。

2、启动Broker

### 首先启动broker
$ nohup sh mqbroker -n localhost:9876 &
### 检查broker是否启动成功。如果看到broker的下面的语句表示启动成功
$ tail -f ~/logs/rocketmqlogs/broker.log 
The broker[broker-a,192.169.1.2:10911] boot success...

如果在broker.log中看到“The broker[brokerName,ip:port] boot success..”就表示broker启动成功。

2、多Master模式

多Master模式意味着所有的节点都是Master节点,没有Slave节点。优缺点如下:

优点:

  • 配置简单。
  • 一个服务器节点的停用或重启(维护目的)不会对应用造成大的影响。
  • 如果磁盘配置了RAID10,就不会由消息的丢失。(因为RAID10非常可靠,即使服务器不可恢复,在异步刷盘时会丢失小量数据,同步刷盘不会丢数据)。
  • 该模式性能最好。

缺点:

  • 在单个节点停用期间,消费者无法消费该节点上的数据,也不能订阅该节点上的数据,除非节点恢复。消息的实时性受到影响。

启动步骤如下:

1、启动NameServer

### 首先启动NameServer
$ nohup sh mqnamesrv &
 
### 检查NameServer是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

2、启动Broker集群

### 启动第一个broker,假定namesrv在192.168.1.1上。注意这里的配置文件的位置
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-a.properties &
 
### 在第二台服务器上启动另一个broker。
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-noslave/broker-b.properties &

上面的NameServer是一台,IP地址直接写,如果是多台NameServer,则需要在-n后接多个NameServer的地址,使用分号分开。由于shell对分号敏感,可以使用单引号引起来多个NameServer的地址,禁止shell对分号的解释。

3、多Master和Slave模式-异步复制

每个Master节点配置一个或多个Slave节点,组成一组,有多组这样的组合组成集群。HA使用异步复制,Master和Slave节点间有毫秒级的消息同步延迟。优缺点如下:

优点:

  • 磁盘坏掉,会有少量消息丢失,但是消息的实时性不会受到影响。
  • 同时,如果Master宕机,消费者依然可以从Slave节点消费,并且这个转换是透明的,也无需运维手动介入。
  • 性能和多Master模式差不多,弱一点点。

缺点:

  • 如果Master宕机,磁盘坏掉,会丢失少量消息。

启动步骤如下:

1、启动NameServer

### 首先启动NameServer
$ nohup sh mqnamesrv &
 
### 检查NameServer是否启动成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

2、启动Broker集群

### 启动Master的broker:broker-a
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
 
### 在另外一台服务器上启动另一个Master的broker:broker-b
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
 
### 在另一台服务器上启动broker-a的Slave
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
 
### 在另一台服务器上启动broker-b的Slave
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &

以上启动的是2M-2S-Async模式,双主双从,主从异步复制模式。

4、多Master和Slave模式-同步双写

该模式中,每个Master节点配置多个Slave节点,它们构成一组,多组构成集群。HA使用同步双写,即,只有消息在Master节点和多个Slave节点上写成功,才返回生产者消息发送成功。

ASYNC_MASTER

SYNC_MASTER

优缺点如下:

优点:

  • 数据和服务都没有单点故障
  • 当Master主机宕机,消息的消费不会延迟。
  • 服务和数据的高可用。

缺点:

  • 该模式的性能比异步复制的模式低10%左右。
  • 发送消息的延迟稍微高一点。
  • 当前版本中,如果Master节点宕机,Slave节点不能自动切换为Master模式。

启动步骤如下:

1、启动NameServer

### 首先启动NameServer
$ nohup sh mqnamesrv &
 
### 检查NameServer是否启动成功。
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

2、启动Broker集群

### 在一个节点启动broker-a(MASTER)
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &
 
### 在另一个节点启动broker-b(MASTER)
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &
 
### 在另一个节点启动broker-a的同步Slave节点:broker-a-s
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &
 
### 在另一个节点启动broker-b的同步Slave节点:broker-b-s
$ nohup sh mqbroker -n 192.168.1.1:9876 -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &

述配置中,通过相同的brokerName不同的brokerId将Master和Slave组合为一组。Master的brokerId必须是0,Slave的brokerId必须大于0,且不能相同。

三、mqadmin管理工具

注意:

  • 执行命令方法:./mqadmin {command} {args}
  • 几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port
  • 几乎所有命令都可以通过-h获取帮助
  • 如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执行命令,如果不配置Broker地址,则对集群中所有主机执行命令,只支持一个Broker地址。-b格式为ip:port,port默认是10911
  • 在tools下可以看到很多命令,但并不是所有命令都能使用,只有在MQAdminStartup中初始化的命令才能使用,你也可以修改这个类,增加或自定义命令

1、Topic相关

启动集群:

# nohup sh mqnamesrv &
# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2s-sync/broker-a.properties &
# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2s-sync/broker-a-s.properties &
# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2s-sync/broker-b.properties &
# nohup sh mqbroker -n node1:9876 -c /opt/rocketmq/conf/2m-2s-sync/broker-b-s.properties &

1、命令列表

名称 含义 命令选项 说明
updateTopic 创建更新Topic配置 -b Broker 地址,表示 topic 所在Broker,只支持单台Broker,地址为ip:port
-c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询)
-h 打印帮助
-n NameServer服务地址,格式 ip:port
-p 指定新topic的读写权限(2-W、4-R、6-RW(默认))
-r 可读队列数(默认为 8)
-w 可写队列数(默认为 8)
-t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$)
deleteTopic 删除Topic -c cluster 名称,表示删除某集群下的某个topic(集群可通过 clusterList 查询)
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
-t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$)
topicList 查看 Topic 列表信息 -h 打印帮助
-c 不配置-c只返回topic列表,增加-c返回clusterName, topic, consumerGroup信息,即topic的所属集群和订阅关系,没有参数
-n NameServer 服务地址,格式 ip:port
topicRoute 查看 Topic 路由信息 -t topic 名称
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
topicStatus 查看 Topic 消息队列offset -t topic 名称
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
topicClusterList 查看 Topic 所在集群列表 -t topic 名称
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
updateTopicPerm 更新 Topic 读写权限 -t topic 名称
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
-b Broker 地址,表示 topic 所在Broker,只支持单台Broker,地址为ip:port
-p 指定新topic的读写权限(2-W、4-R、6-RW(默认))
-c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询),-b优先,如果没有-b,则对集群中所有Broker执行命令
updateOrderConf 从NameServer上创建、删除、获取特定命名空间的kv配置,目前还未启用 -h 打印帮助
-n NameServer 服务地址,格式 ip:port
-t topic,键
-v orderConf,值
-m method,可选get、put、delete
allocateMQ 以平均负载算法计算消费者列表负载消息队列的负载结果 -t topic 名称
-h 打印帮助
-n NameServer 服务地址,格式 ip:port
-i ipList,用逗号分隔,计算这些ip去负载Topic的消息队列
statsAll 打印Topic订阅关系、TPS、积累量、24h读写总量等信息 -h 打印帮助
-n NameServer 服务地址,格式 ip:port
-a 是否只打印活跃topic
-t 指定topic

2、具体操作

# 查看指定NameServer下的主题
# mqadmin topicList -n node1:9876
# 查看指定NameServer,指定集群名称下的主题
# mqadmin topicList -n node1:9876 -c DefaultCluster
# 创建主题,指定NameServer,指定Broker 指定主题名称,指定主题的写队列个数,指定读主题队列个数
# mqadmin updateTopic -b node1:10911 -r 3 -w 3 -t tp_admin_01
# 描述主题,指定NameServer,指定主题名称
# mqadmin topicStatus -t tp_admin_01 -n node1:9876
# 创建主题,指定NameServer,指定集群名称,指定主题名称,指定读主题队列个数,指定写主题队列个数
# mqadmin updateTopic -c DefaultCluster -n node1:9876 -r 3 -w 3 -t tp_admin_02
# 查看指定主题的状态,指定NameServer地址,指定主题名称
# mqadmin topicStatus -t tp_admin_02 -n node1:9876
#删除主题,指定NameServer地址,指定集群名称,指定主题名称
# mqadmin deleteTopic -n node1:9876 -c DefaultCluster -t tp_admin_03
# 查看主题所在的集群,指定NameServer地址,指定主题名称。因为不同集群可以拥有同名的主题,并且不同集群可以注册到同一个NameServer
# mqadmin topicClusterList -n node1:9876 -t tp_admin_02
# 计算消费的负载均衡,不同的-i列表,计算不同的消费平衡负载结果
# mqadmin allocateMQ -n node1:9876 -t tp_admin_02 -i node1,node3
# mqadmin allocateMQ -n node1:9876 -t tp_admin_02 -i node1,node2,node3,node4
# 打印Topic订阅关系、TPS、积累量、24h读写总量等信息
# mqadmin statsAll -n node1:9876

2、集群相关

1、命令列表

名称 含义 命令选项 说明
clusterList 查看集群信息,集群、BrokerName、BrokerId、TPS等信息 -m 打印更多信息 (增加打印出如下信息#InTotalYest, #OutTotalYest,#InTotalToday ,#OutTotalToday)
-h 打印帮助
-n NameServer服务地址,格式 ip:port
-i 打印间隔,单位秒
clusterRT 发送消息检测集群各BrokerRT。消息发往${BrokerName} Topic。 -a amount,每次探测的总数,RT = 总时间/amount
-s 息大小,单位B
-c 探测哪个集群
-p 是否打印格式化日志
-h 打印帮助
-m 所属机房,打印使用
-i 发送间隔,单位秒
-n NameServer 服务地址,格式 ip:port

2、具体操作

# 查看集群信息,集群、BrokerName、BrokerId、TPS等信息
# mqadmin clusterList -n node1:9876 -i 1 -m
# 检查集群中broker的延迟。
# mqadmin clusterRT -a 5 -s 1048576 -c DefaultCluster -p true -i 2 -n node1:9876

3、Broker相关

1、命令列表

名称 含义 命令选项 说明
updateBrokerConfig 更新 Broker 配置文件,会修改Broker.conf -b Broker 地址,格式为ip:port
-c cluster 名称
-k key 值
-v value 值
-h 打印帮助
-n NameServer服务地址,格式 ip:port
brokerStatus 查看 Broker 统计信息、运行状态(你想要的信息几乎都在里面) -b Broker 地址,地址为ip:port
-h 打印帮助
-n NameServer服务地址,格式 ip:port
brokerConsumeStats Broker中各个消费者的消费情况,按Message Queue维度返回ConsumeOffset,Broker Offset,Diff,TImestamp等信息 -b Broker 地址,地址为ip:port
-t 请求超时时间
-l diff阈值,超过阈值才打印
-o 是否为顺序topic,一般为false
-h 打印帮助
-n NameServer服务地址,格式 ip:port
getBrokerConfig 获取Broker配置 -b Broker 地址,地址为ip:port
-n NameServer 服务地址,格式 ip:port
wipeWritePerm 从NameServer上清除 Broker写权限 -b Broker 地址,地址为ip:port
-h 打印帮助
-n NameServer服务地址,格式 ip:port
cleanExpiredCQ 清理Broker上过期的ConsumeQueue,如果手动减少对列数可能产生过期队列 -n NameServer 服务地址,格式 ip:port
-h 打印帮助
-b Broker 地址,地址为ip:port
-c 集群名称
cleanUnusedTopic 清理Broker上不使用的Topic,从内存中释放Topic的Consume Queue,如果手动删除Topic会产生不使用的Topic -n NameServer 服务地址,格式 ip:port
-h 打印帮助
-b Broker 地址,地址为ip:port
-c 集群名称
sendMsgStatus 向Broker发消息,返回发送状态和RT -n NameServer 服务地址,格式 ip:port
-h 打印帮助
-b Broker 地址,地址为ip:port
-s 消息大小,单位B
-c 发送次数

2、具体操作

# 查看broker状态
# mqadmin brokerStatus -b node1:10911
# mqadmin brokerStatus -n node1:9876 -b node2:10911
# 修改节点的配置,配置文件也会修改
# 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配置
# mqadmin getBrokerConfig -n node1:9876 -b node3:10911
# 清理Broker上不使用的Topic,从内存中释放Topic的Consume Queue,如果手动删除Topic会产生不使用的Topic
# mqadmin cleanUnusedTopic -n node1:9876 -b node1:10911 -c DefaultCluster
# 向Broker发消息,返回发送状态和RT
# mqadmin sendMsgStatus -n node1:9876 -b broker-b -s 128 -c 5

4、消息相关

1、命令列表

名称 含义 命令选项 说明
queryMsgById 根据offsetMsgId查询msg,如果使用开源控制台,应使用offsetMsgId -i msgId
-h 打印帮助
-n NameServer服务地址,格式 ip:port
queryMsgByKey 根据消息 Key 查询消息 -k msgKey
-t Topic 名称
-h 打印帮助
-n NameServer服务地址,格式 ip:port
queryMsgByOffset 根据 Offset 查询消息 -b Broker 名称,(这里需要注意 填写的是Broker的名称,不是Broker的地址,Broker名称可以在clusterList查到)
-i query 队列 id
-o offset 值
-t Topic 名称
-h 打印帮助
-n NameServer服务地址,格式 ip:port
queryMsgByUniqueKey 根据msgId查询,msgId不同于offsetMsgId,区别详见常见运维问题。-g,-d配合使用,查到消息后尝试让特定的消费者消费消息并返回消费结果 -h 打印帮助
-n NameServer服务地址,格式 ip:port
-i uniqe msg id
-g consumerGroup
-d clientId
-t topic名称
checkMsgSendRT 检测向topic发消息的RT,功能类似clusterRT -h 打印帮助
-n NameServer服务地址,格式 ip:port
-t topic名称
-a 探测次数
-s 消息大小
sendMessage 发送一条消息,可以根据配置发往特定Message Queue,或普通发送。 -h 打印帮助
-n NameServer服务地址,格式 ip:port
-t topic名称
-p body,消息体
-k keys
-c tags
-b BrokerName
-i queueId
consumeMessage 消费消息。可以根据offset、开始和结束时间戳、消息队列消费消息, -h 打印帮助
-n NameServer服务地址,格式 ip:port
-t topic名称
-b BrokerName
-o 从offset开始消费
-i queueId
-g 消费者分组
-s 开始时间戳
-d 结束时间戳
-c 消费多少条消息
printMsg 从Broker消费消息并打印,可选时间段 -h 打印帮助
-n NameServer服务地址,格式 ip:port
-t topic名称
-c 字符集,例如UTF-8
-s subExpress,过滤表达式
-b 开始时间戳
-e 结束时间戳
-d 是否打印消息体
printMsgByQueue 类似printMsg,但指定MessageQueue -h 打印帮助
-n NameServer服务地址,格式 ip:port
-t topic名称
-i queueId
-a BrokerName
-c 字符集,例如UTF-8
-s subExpress,过滤表达式
-b 开始时间戳
-e 结束时间戳
-p 是否打印消息
-d 是否打印消息体
-f 是否统计tag数量并打印
resetOffsetByTime 按时间戳重置offset,Broker和consumer都会重置 -h 打印帮助
-n NameServer服务地址,格式 ip:port
-g 消费者分组
-t topic名称
-s 重置为此时间戳对应的offset
-f 是否强制重置,如果false,只支持回溯offset,如果true,不管时间戳对应offset与consumeOffset关系
-c 是否重置c++客户端offset

2、具体操作

# 根据MsgKey查询消息,指定NameServer地址,指定主题名称,指定MsgKey
# mqadmin queryMsgByKey -n node1:9876 -t tp_admin_01 -k 00100
# 根据UNIQ_KEY查询消息,指定NameServer地址,指定UNIQ_KEY,指定消费组名称,指定主题名称
# mqadmin queryMsgByUniqueKey -n node1:9876 -i C0A864672C8B277050DC5F8417BA0000 -g test_grp_console -t tp_admin_01
# 发送检查消息延迟,指定NameServer,指定主题,指定测试次数,指定消息大小,默认128KB
# mqadmin checkMsgSendRT -n node1:9876 -t tp_admin_01 -a 5 -s 128
# 指定发送消息的大小,以测试延迟 1MB
# mqadmin checkMsgSendRT -n node1:9876 -t tp_admin_01 -a 5 -s 1048576
# 消费消息,指定NameServer,指定主题,指定broker名称,指定MQ的id。
# mqadmin consumeMessage -n node1:9876 -t tp_admin_01 -o 0 -b broker-a -i 0
# 发送消息,指定主题,指定NameServer地址,指定消息体
# mqadmin sendMessage -n node1:9876 -t tp_admin_01 -p 'hello lagou console'
# 发送消息,指定主题,指定NameServer地址,指定消息体,指定keys,指定tags
# mqadmin sendMessage -n node1:9876 -t tp_admin_01 -p 'hello lagou console' -k '00100' -c 'test'
# 发送消息,指定NameServer,指定消息体,指定Broker,指定主题
# mqadmin sendMessage -n node1:9876 -p 'hello lagou test 01' -b broker-a -i 0 -t 'tp_admin_01'
# 查看偏移量,指定NameServer,指定主题
# mqadmin topicStatus -n node1:9876 -t tp_admin_01
# 打印消息,指定NameServer地址,指定主题,指定标签过滤,指定是否打印消息体
# mqadmin printMsg -n node1:9876 -t tp_admin_01 -s "*" -d true

5、消费者、消费组相关

1、命令列表

名称 含义 命令选项 说明
consumerProgress 查看订阅组消费状态,可以查看具体的client IP的消息积累量 -g 消费者所属组名
-s 是否打印client IP
-h 打印帮助
-n NameServer服务地址,格式 ip:port
consumerStatus 查看消费者状态,包括同一个分组中是否都是相同的订阅,分析Process Queue是否堆积,返回消费者jstack结果,内容较多,使用者参见ConsumerStatusSubCommand -h 打印帮助
-n NameServer服务地址,格式 ip:port
-g consumer group
-i clientId
-s 是否执行jstack
updateSubGroup 更新或创建订阅关系 -n NameServer服务地址,格式 ip:port
-h 打印帮助
-b Broker地址
-c 集群名称
-g 消费者分组名称
-s 分组是否允许消费
-m 是否从最小offset开始消费
-d 是否是广播模式
-q 重试队列数量
-r 最大重试次数
-i 当slaveReadEnable开启时有效,且还未达到从slave消费时建议从哪个BrokerId消费,可以配置备机id,主动从备机消费
-w 如果Broker建议从slave消费,配置决定从哪个slave消费,配置BrokerId,例如1
-a 当消费者数量变化时是否通知其他消费者负载均衡
deleteSubGroup 从Broker删除订阅关系 -n NameServer服务地址,格式 ip:port
-h 打印帮助
-b Broker地址
-c 集群名称
-g 消费者分组名称
cloneGroupOffset 在目标群组中使用源群组的offset -h 打印帮助
-n NameServer服务地址,格式 ip:port
-s 源消费者组
-d 目标消费者组
-t topic名称
-o 暂未使用

2、具体操作

# 查看消费者状态
# mqadmin consumerStatus -n node1:9876 -g mygrp_consume -s

6、连接相关

1、命令列表

名称 含义 命令选项 说明
consumerConnection 查询 Consumer 的网络连接 -g 消费者所属组名
-n NameServer服务地址,格式 ip:port
-h 打印帮助
producerConnection 查询 Producer 的网络连接 -g 消费者所属组名
-t 主题名称
-n NameServer服务地址,格式 ip:port
-h 打印帮助

2、具体操作

# 查看生产者连接
# mqadmin producerConnection -g mygrp -t tp_admin_01 -n node1:9876
# 查看消费者连接
# mqadmin consumerConnection -g mygrp_consume -n node1:9876

7、NameServer相关

1、命令列表

名称 含义 命令选项 说明
updateKvConfig 更新NameServer的kv配置 -s 命名空间
-k key
-v value
-n NameServer服务地址,格式 ip:port
-h 打印帮助
deleteKvConfig 删除NameServer的kv配置 -s 命名空间
-k key
-n NameServer服务地址,格式 ip:port
-h 打印帮助
getNamesrvConfig 获取NameServer配置 -n NameServer服务地址,格式 ip:port
-h 打印帮助
updateNamesrvConfig 修改NameServer配置 -n NameServer服务地址,格式 ip:port
-k key
-v value

2、具体操作

# 获取NameServer配置信息
# mqadmin getNamesrvConfig -n node1:9876
# 修改NameServer的配置
# mqadmin updateNamesrvConfig -n node1:9876 -k serverWorkerThreads -v 10

8、其他

1、命令列表

名称 含义 命令选项 说明
startMonitoring 开启监控进程,监控消息误删、重试队列消息数等 -n NameServer服务地址,格式 ip:port
-h 打印帮助

2、具体操作

# mqadmin startMonitoring -n node1:9876
0

评论区