命令位置 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
# 注意事项
几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port
几乎所有命令都可以通过-h获取帮助
如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执行命令;如果不配置Broker地址,则对集群中所有主机执行命令