跳到主要内容
版本: 5.0

管理工具

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

其他

连接相关参数
名称定义命令选项解释
startMonitoring启动监控进程,监控消息删除错误和重试队列中的消息数量等事件。-nNameServer 地址,格式为 ip:port
-h打印帮助信息