管理工具
注意
- 执行命令:
./mqadmin {command} {args}
- 大多数命令需要通过
-n
参数配置 NameServer 地址,格式为ip:port
- 大多数命令可以通过
-h
参数获取帮助 - 如果同时配置了 Broker 地址 (
-b
) 和 clusterName (-c
),则命令将使用 Broker 地址执行。如果未配置 Broker 地址,则命令将在集群中的所有主机上执行。仅支持一个 Broker 地址,格式为ip:port
,其中端口默认为 10911。 - 在
tools
目录下,你可以看到许多命令,但并非所有命令都可以使用。只有在MQAdminStartup
中初始化的命令才能使用。你也可以修改这个类来添加或定义自己的命令。 - 由于版本更新,某些命令可能尚未更新,并可能导致错误。在这种情况下,请阅读相关的命令源代码。
Topic 相关
Topic 相关参数
名称 | 定义 | 命令选项 | 解释 |
updateTopic | 创建/更新 topic 配置 | -b | Broker 地址,表示 topic 所在的 Broker。仅支持单个 Broker,地址格式为 ip:port。 |
-c | 集群名称,表示 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_-]+$ 字符) | ||
deleteTopic | 删除 Topic | -c | 集群名称,表示删除特定集群下的某个 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 消息队列偏移量 | -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 的读写权限 ( W=2|R=4|WR=6 ) | ||
-c | 集群名称,表示 topic 所在的集群(集群可以通过 clusterList 命令查询)。-b 参数优先。如果没有 -b 参数,命令将在集群中的所有 Broker 上执行。 | ||
updateOrderConf | 从 NameServer 创建、删除和获取特定 kv 配置。此功能目前不可用。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic,key | ||
-v | orderConf,value | ||
-m | 方法,可选 get、put、delete | ||
allocateMQ | 使用平均负载算法计算消费者列表的消息队列负载结果。 | -t | topic 名称 |
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
-i | ip列表,以逗号分隔,计算这些 IP 的 topic 消息队列负载。 | ||
statsAll | 打印 topic 的订阅、TPS、累积、24 小时读写总量等信息。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-a | 只打印活跃 topic | ||
-t | 指定 topic |
集群相关
集群相关参数
名称 | 定义 | 命令选项 | 解释 |
clusterList | 查询集群信息,包括集群、BrokerName、BrokerId、TPS 等信息。 | -m | 打印更多信息(打印的额外信息包括:#InTotalYest, #OutTotalYest,#InTotalToday ,#OutTotalToday) |
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
-i | 打印间隔,单位为秒。 | ||
clusterRT | 发送消息以测试集群中每个 Broker 的 RT。消息发送到${Broker名称}Topic。 | -a | 数量,每次探测的总次数。RT = 总时间 / 数量 |
-s | 消息大小,单位:B | ||
-c | 要探测哪个集群 | ||
-p | 是否打印格式化日志,以 | 分隔,默认不打印。 | ||
-h | 打印帮助信息 | ||
-m | 所属数据中心,用于打印。 | ||
-i | 发送间隔,单位为秒。 | ||
-n | NameServer 地址,格式为 ip:port |
Broker 相关
Broker 相关参数
名称 | 定义 | 命令选项 | 解释 |
queryMsgById | 根据 offsetMsgId 查询消息。如果使用开源控制台,应使用 offsetMsgId。此命令有额外的参数,有关其功能的更多信息,请阅读 QueryMsgByIdSubCommand。 | -i | msgId |
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByKey | 根据消息 key 查询消息。 | -k | msgKey |
-t | Topic 名称 | ||
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByOffset | 根据 offset 查询消息。 | -b | Broker 名称(注意此处应输入 Broker 的名称,而非其地址。Broker 名称可以通过 clusterList 命令找到)。 |
-i | 查询队列 ID | ||
-o | offset 值 | ||
-t | topic 名称 | ||
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByUniqueKey | 根据 msgId 查询。msgId 与 offsetMsgId 不同,更多信息请参阅常见运维问题。-g 和 -d 一起使用,找到消息后,尝试让特定消费者消费消息并返回消费结果。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-i | 唯一消息 ID | ||
-g | 消费者组 | ||
-d | 客户端 ID | ||
-t | topic 名称 | ||
checkMsgSendRT | 检查发送消息到 topic 的 RT。功能类似于 clusterRT。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-a | 探测次数 | ||
-s | 消息大小 | ||
sendMessage | 发送消息,可以根据配置发送到特定消息队列,也可以进行普通发送。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-p | 消息体 | ||
-k | 键 | ||
-c | 标签 | ||
-b | Broker名称 | ||
-i | 队列 ID | ||
consumeMessage | 消费消息。可以根据 offset、开始和结束时间戳以及消息队列消费消息。不同的配置将执行不同的消费逻辑,更多信息请参阅 ConsumeMessageCommand。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-b | Broker名称 | ||
-o | 从 offset 消费 | ||
-i | 队列 ID | ||
-g | 消费者组 | ||
-s | 开始时间戳,格式请参阅 -h。 | ||
-d | 结束时间戳 | ||
-c | 消费一定数量的消息 | ||
printMsg | 从 Broker 消费并打印消息,可选时间段。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-c | 字符集,例如 UTF-8 | ||
-s | subExpress,过滤表达式 | ||
-b | 开始时间戳,格式请参阅 -h。 | ||
-e | 结束时间戳 | ||
-d | 是否打印消息体。 | ||
printMsgByQueue | 类似于 printMsg,但针对特定消息队列。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-i | 队列 ID | ||
-a | Broker名称 | ||
-c | 字符集,例如 UTF-8 | ||
-s | subExpress,过滤表达式 | ||
-b | 开始时间戳,格式请参阅 -h。 | ||
-e | 结束时间戳 | ||
-p | 是否打印消息体。 | ||
-d | 是否打印消息体。 | ||
-f | 是否统计并打印标签数量 | ||
resetOffsetByTime | 根据时间戳重置 offset,Broker 和消费者都将重置。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-g | 消费者组 | ||
-t | topic 名称 | ||
-s | 重置到此时间戳对应的 offset。 | ||
-f | 是否强制重置。如果为 false,只支持向后重置 offset。如果为 true,则不考虑时间戳对应 offset 与 consumeOffset 的关系。 | ||
-c | 是否重置 C++ 客户端的 offset。 |
消息相关
消息相关参数
名称 | 定义 | 命令选项 | 解释 |
queryMsgById | 要通过其偏移消息 ID (offsetMsgId) 查询消息,如果使用开源控制台,可以使用 offsetMsgId 命令。此命令有额外的参数,其具体功能可以通过阅读 QueryMsgByIdSubCommand 找到。 | -i | msgId |
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByKey | 通过 key 查询消息。 | -k | msgKey |
-t | Topic 名称 | ||
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByOffset | 通过 offset 查询消息 | -b | Broker 名称(注意:此处应为 Broker 的名称,而非地址。Broker 的名称可以在 clusterList 中找到。) |
-i | 查询队列 ID | ||
-o | offset 值 | ||
-t | topic 名称 | ||
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
queryMsgByUniqueKey | 根据 msgId 查询。请注意,msgId 不同于 offsetMsgId。有关更多信息,请参阅常见运维问题。结合使用 -g 和 -d,在找到消息后尝试让特定消费者消费消息并返回消费结果。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-i | 唯一消息 ID | ||
-g | 消费者组 | ||
-d | 客户端 ID | ||
-t | topic 名称 | ||
checkMsgSendRT | 检查发送消息到 topic 的 RT(往返时间)。此功能类似于 clusterRT。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-a | 探测次数。 | ||
-s | 消息大小 | ||
sendMessage | 发送消息,可以根据配置发送到特定消息队列,也可以正常发送。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-p | body,消息体 | ||
-k | 键 | ||
-c | 标签 | ||
-b | Broker名称 | ||
-i | 队列 ID | ||
consumeMessage | 消费消息。可以根据 offset、开始和结束时间戳以及消息队列消费消息。不同的配置将执行不同的消费逻辑。更多信息请参阅 ConsumeMessageCommand。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-b | Broker名称 | ||
-o | 从指定 offset 消费。 | ||
-i | 队列 ID | ||
-g | 消费者组 | ||
-s | 开始时间戳,格式请参阅 -h。 | ||
-d | 结束时间戳 | ||
-c | 消费指定数量的消息。 | ||
printMsg | 在指定时间段内从 Broker 消费并打印消息。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-c | 字符集,例如 UTF-8 | ||
-s | subExpress,过滤表达式 | ||
-b | 开始时间戳,格式请参阅 -h。 | ||
-e | 结束时间戳 | ||
-d | 是否打印消息体 | ||
printMsgByQueue | 类似于 printMsg,但指定一个消息队列。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-t | topic 名称 | ||
-i | 队列 ID | ||
-a | Broker名称 | ||
-c | 字符集,例如 UTF-8 | ||
-s | subExpress,过滤表达式 | ||
-b | 开始时间戳,格式请参阅 -h。 | ||
-e | 结束时间戳 | ||
-p | 是否打印消息 | ||
-d | 是否打印消息体 | ||
-f | 是否统计并打印标签数量 | ||
resetOffsetByTime | 通过时间戳重置 offset 将同时重置 broker 和消费者。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-g | 消费者组 | ||
-t | topic 名称 | ||
-s | 重置到此时间戳对应的 offset。 | ||
-f | 是否强制重置。如果为 false,只支持向后重置 offset。如果为 true,则忽略时间戳对应 offset 与 consumeOffset 的关系。 | ||
-c | 是否重置 C++ 客户端的 offset。 |
消费相关
消费相关参数
名称 | 定义 | 命令选项 | 解释 |
consumerProgress | 消费者组消费状态,包括特定客户端 IP 的消息堆积。 | -g | 消费者组名称 |
-s | 是否打印客户端 IP。 | ||
-h | 打印帮助信息 | ||
-n | NameServer 地址,格式为 ip:port | ||
consumerStatus | 消费者状态指消费者的状态,包括同一组中所有消费者是否具有相同的订阅、Process Queue 是否堆积以及消费者的 jstack 结果。此命令返回的信息很广泛,用户应参考 ConsumerStatusSubCommand 获取更多详细信息。 | -h | 打印帮助信息 |
-n | NameServer 地址,格式为 ip:port | ||
-g | 消费者组 | ||
-i | 客户端 ID | ||
-s | 是否执行 jstack | ||
getConsumerStatus | 获取消费者消费进度 | -g | 消费者组名称 |
-t | 查询 topic | ||
-i | 消费者客户端 IP | ||
-n | NameServer 地址,格式为 ip:port | ||
-h | 打印帮助信息 | ||
updateSubGroup | 更新或创建订阅关系。 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 | ||
-b | Broker 地址 | ||
-c | 集群名称 | ||
-g | 消费者组名称 | ||
-s | 是否允许该组消费 | ||
-m | 是否从最小 offset 开始消费。 | ||
-d | 是否为广播模式。 | ||
-q | 重试队列数量。 | ||
-r | 最大重试次数 | ||
-i | 当 slaveReadEnable 开启且尚未达到建议从 slave 消费时,可以配置备机 ID 以主动从备机消费。 | ||
-w | 如果 Broker 建议从 slave 消费,则配置决定从哪个 slave 消费。可以配置 BrokerId,例如 1。 | ||
-a | 当消费者数量发生变化时,是否通知其他消费者进行负载均衡。 | ||
deleteSubGroup | 从 Broker 中删除订阅 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 | ||
-b | Broker 地址 | ||
-c | 集群名称 | ||
-g | 消费者组名称 | ||
cloneGroupOffset | 在目标消费者组中使用源消费者组的 offset。 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 | ||
-s | 源消费者组 | ||
-d | 目标消费者组 | ||
-t | topic名称 | ||
-o | 目前未使用。 |
连接相关
连接相关参数
名称 | 定义 | 命令选项 | 解释 |
consumerConnection | 查询消费者网络连接。 | -g | 消费者组名称。 |
-n | NameServer 地址,格式为 ip:port | ||
-h | 打印帮助信息 | ||
producerConnection | 查询生产者网络连接。 | -g | 生产者组名称。 |
-t | topic 名称 | ||
-n | NameServer 地址,格式为 ip:port | ||
-h | 打印帮助信息 |
NameServer 相关
连接相关参数
名称 | 定义 | 命令选项 | 解释 |
updateKvConfig | 更新 NameServer KV 配置,目前未使用。 | -s | 命名空间 |
-k | 键 | ||
-v | 值 | ||
-n | NameServer 地址,格式为 ip:port | ||
-h | 打印帮助信息 | ||
deleteKvConfig | 删除 NameServer KV 配置。 | -s | 命名空间 |
-k | 键 | ||
-n | NameServer 地址,格式为 ip:port | ||
-h | 打印帮助信息 | ||
getNamesrvConfig | 获取 NameServer 配置。 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 | ||
updateNamesrvConfig | 修改 NameServer 配置。 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 | ||
-k | 键 | ||
-v | 值 |
其他
连接相关参数
名称 | 定义 | 命令选项 | 解释 |
startMonitoring | 启动监控进程,监控消息删除错误和重试队列中的消息数量等事件。 | -n | NameServer 地址,格式为 ip:port |
-h | 打印帮助信息 |