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