命令位置 bin/mqadmin

命令格式 mqadmin {command} {args}

# topic相关

# 1. updateTopic - 创建更新Topic配置

  • -b Broker 地址,表示 topic 所在 Broker,只支持单台Broker,地址为ip:port
  • -c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询)
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port
  • -p 指定新topic的读写权限( W=2|R=4|WR=6 )
  • -r 可读队列数(默认为 8)
  • -w 可写队列数(默认为 8)
  • t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$

# 2. deleteTopic - 删除Topic

  • -c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询)
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port
  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$

# 3. topicList - 查看 Topic 列表信息

  • -h 打印帮助
  • -c 不配置-c只返回topic列表,增加-c返回clusterName,topic, consumerGroup信息,即topic的所属集群和订阅关系,没有参数
  • -n NameServer服务地址,格式 ip:port

# 4. topicRoute - 查看 Topic 路由信息

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port

# 5. topicStatus - 查看 Topic 消息队列offset

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port

# 6. topicClusterList - 查看 Topic 所在集群列表

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port

# 7. updateTopicPerm - 更新 Topic 读写权限

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port
  • -b Broker 地址,表示 topic 所在 Broker,只支持单台Broker,地址为ip:port
  • -p 指定新 topic 的读写权限( W=2|R=4|WR=6 )
  • -c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询),-b优先,如果没有-b,则对集群中所有Broker执行命令

# 8. updateOrderConf - 从NameServer上创建、删除、获取特定命名空间的kv配置,目前还未启用

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port
  • -v orderConf,值
  • -m method,可选get、put、delete

# 9. allocateMQ - 以平均负载算法计算消费者列表负载消息队列的负载结果

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -n NameServer服务地址,格式 ip:port
  • -i ipList,用逗号分隔, 计算这些ip去负载Topic 的消息队列

# 10. statsAll - 打印Topic订阅关 系、TPS、积累量、 24h读写总量等信息

  • -t topic 名称(名称只能使用字符^[a-zA-Z0-9_-]+$
  • -h 打印帮助
  • -a 是否只打印活跃topic
  • -n NameServer服务地址,格式 ip:port

# 集群相关

# 1. clusterList - 查看集群信息,集群、BrokerName、 BrokerId、TPS等信息

  • -m 打印更多信息 (增加打印 出如下信息 #InTotalYest, #OutTotalYest, #InTotalToday ,#OutTotalToday)
  • -h 打印帮助
  • -i 打印间隔,单位秒
  • -n NameServer服务地址,格式 ip:port

# 2. clusterRT - 发送消息检测集群各 Broker RT。消息发往 ${BrokerName} Topic。

  • -a amount,每次探测的总 数,RT = 总时间 / amount
  • -s 消息大小,单位B
  • -c 探测哪个集群
  • -p 是否打印格式化日志, 以|分割,默认不打印
  • -h 打印帮助
  • -m 所属机房,打印使用
  • -i 发送间隔,单位秒
  • -n NameServer 服务地 址,格式 ip:port

# Broker相关

# 1. updateBrokerConfig - 更新 Broker 配置文 件,会修改 Broker.conf

  • -b Broker 地址,格式为 ip:port
  • -c cluster 名称
  • -k key 值
  • -v value 值
  • -h 打印帮助
  • -n NameServer 服务地 址,格式 ip:port

# 2. brokerStatus - 查看 Broker 统计信 息、运行状态(你想要的信息几乎都在里面)

  • -b Broker 地址,格式为 ip:port
  • -h 打印帮助
  • -n NameServer 服务地 址,格式 ip:port

# 3. brokerConsumeStats - Broker中各个消费 者的消费情况,按 Message Queue维度返回Consume Offset,Broker Offset,Diff, Timestamp等信息

  • -b Broker 地址,格式为 ip:port
  • -t 请求超时时间
  • -l diff阈值,超过阈值才 打印
  • -o 是否为顺序topic,一 般为false
  • -h 打印帮助
  • -n NameServer 服务地 址,格式 ip:port

# 4. getBrokerConfig - 获取Broker配置

  • -b Broker 地址,格式为 ip:port
  • -n NameServer 服务地 址,格式 ip:port

# 5. wipeWritePerm - 从NameServer上清 除 Broker写权限

  • -b Broker 地址,格式为 ip:port
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 6. cleanExpiredCQ - 清理Broker上过期的Consume Queue,如果手动 减少对列数可能产生过期队列

  • -b Broker 地址,格式为 ip:port
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助
  • -c cluster 名称

# 7. cleanUnusedTopic - 清理Broker上不使用的Topic,从内存中释放Topic的 Consume Queue, 如果手动删除Topic 会产生不使用的 Topic

  • -b Broker 地址,格式为 ip:port
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助
  • -c cluster 名称

# 8. sendMsgStatus - 向Broker发消息, 返回发送状态和RT

  • -b Broker 地址,格式为 ip:port
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助
  • -s 消息大小,单位B
  • -c 发送次数

# 消息相关

# 1. queryMsgById - 根据offsetMsgId查询msg,如果使用开源控制台,应使用 offsetMsgId,此命令还有其他 参数,具体作用请阅读 QueryMsgByIdSubCommand。

  • -i msgId
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 2. queryMsgByKey - 根据消息 Key 查询消息

  • -t Topic 名称
  • -k msgKey
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 3. queryMsgByOffset - 根据 Offset 查询消息

  • -b Broker 名称,(这里需要注意填写的是 Broker 的名称,不是 Broker 的地址,Broker名称可以在 clusterList 查到)
  • -i query 队列 id
  • -o offset 值
  • -t Topic 名称
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 4. queryMsgByUniqueKey - 根据msgId查询,msgId不同于 offsetMsgId,区别详⻅常⻅运 维问题。-g,-d配合使用,查到 消息后尝试让特定的消费者消费消息并返回消费结果

  • -i uniqe msg id
  • -g consumerGroup
  • -d clientId
  • -t topic名称
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 5. checkMsgSendRT - 检测向topic发消息的RT,功能类 似clusterRT

  • -a 探测次数
  • -s 消息大小
  • -t topic名称
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 6. sendMessage - 发送一条消息,可以根据配置发往特定Message Queue,或普通发送。

  • -p body,消息体
  • -k keys
  • -c tags
  • -b BrokerName
  • -i queueId
  • -t topic名称
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 7. consumeMessage - 消费消息。可以根据offset、开始&结束时间戳、消息队列消费 消息,配置不同执行不同消费逻 辑,详⻅ConsumeMessageCommand。

  • -o 从offset开始消费
  • -g 消费者分组
  • -s 开始时间戳,格式 详⻅-h
  • -d 结束时间戳
  • -c 消费多少条消息
  • -b BrokerName
  • -i queueId
  • -t topic名称
  • -n NameServer 服务地 址,格式 ip:port
  • -h 打印帮助

# 8. printMsg - 从Broker消费消息并打印,可选时间段

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -t topic名称
  • -c 字符集,例如UTF- 8
  • -s subExpress,过滤 表达式
  • -b 开始时间戳,格式参⻅-h
  • -e 结束时间戳
  • -d 是否打印消息体

# 9. printMsgByQueue - 类似printMsg,但指定Message Queue

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -t topic名称
  • -i queueId
  • -a BrokerName
  • -c 字符集,例如UTF- 8
  • -s subExpress,过滤表达式
  • -b 开始时间戳,格式参⻅-h
  • -e 结束时间戳
  • -d 是否打印消息体
  • -p 是否打印消息
  • -f 是否统计tag数量并打印

# 10. resetOffsetByTime - 按时间戳重置offset,Broker和 consumer都会重置

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -t topic名称
  • -g 消费者分组
  • -s 重置为此时间戳对应的offset
  • -f 是否强制重置,如 果false,只支持回 溯offset,如果true,不管时间戳对应offset与 consumeOffset关系
  • -c 是否重置c++客户端offset

# 消费者、消费组相关

# 1. consumerProgress - 查看订阅组消费状态,可以查看具体的client IP的消息积累量

  • -g 消费者所属组名
  • -s 是否打印client IP
  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助

# 2. consumerStatus - 查看消费者状态,包括同一个分组中是否都是相同的订阅,分析 Process Queue 是否堆积,返回消费者jstack结果,内容较多,使用者参⻅ ConsumerStatusSubCommand

  • -g 消费者所属组名
  • -i clientId
  • -s 是否执行jstack
  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助

# 3. getConsumerStatus - 获取 Consumer 消费进度

  • -g 消费者所属组名
  • -t 查询主题
  • -i Consumer 客户端 ip
  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助

# 4. updateSubGroup - 更新或创建订阅关系

  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助
  • -g 消费者所属组名
  • -b Broker地址
  • -c 集群名称
  • -s 分组是否允许消费
  • -m 是否从最小offset开始消费
  • -d 是否是广播模式
  • -q 重试队列数量
  • -r 最大重试次数
  • -i 当slaveReadEnable 开启时有效,且还未达到从slave消费时建议从哪个BrokerId 消费,可以配置备机id,主动从备机消费
  • -w 如果Broker建议从 slave消费,配置决 定从哪个slave消费,配置BrokerId, 例如1
  • -a 当消费者数量变化时是否通知其他消费者负载均衡

# 5. deleteSubGroup - 从Broker删除订阅关系

  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助
  • -g 消费者所属组名
  • -b Broker地址
  • -c 集群名称

# 6. cloneGroupOffset - 在目标群组中使用源群组的offset

  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助
  • -s 源消费者组
  • -d 目标消费者组
  • -t topic名称
  • -o 暂未使用

# 连接相关

# 1. consumerConnection - 查询 Consumer 的网络连接

  • -g 消费者所属组名
  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助

# 2. producerConnection - 查询 Producer 的网络连接

  • -g 生产者所属组名
  • -t 主题名称
  • -n NameServer 服务 地址,格式 ip:port
  • -h 打印帮助

# NameServer相关

# 1. updateKvConfig - 更新NameServer的 kv 配置,目前还未使用

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -s 命名空间
  • -k key
  • -v value

# 2. deleteKvConfig - 删除NameServer的 kv 配置

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -s 命名空间
  • -k key

# 3. getNamesrvConfig - 获取NameServer配置

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port

# 4. updateNamesrvConfig - 修改NameServer配 置

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port
  • -k key
  • -v value

# 其他

# 1. startMonitoring - 开启监控进程,监控消息误删、重试队列消息数等

  • -h 打印帮助
  • -n NameServer 服务 地址,格式 ip:port

# 注意事项

  1. 几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port

  2. 几乎所有命令都可以通过-h获取帮助

  3. 如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执行命令;如果不配置Broker地址,则对集群中所有主机执行命令