Github
来源:Apache
浏览 2438
扫码
分享
2020-07-14 21:25:10
2 mqadmin管理工具
注意:
- 执行命令方法:
./mqadmin {command} {args}
- 几乎所有命令都需要配置-n表示NameServer地址,格式为ip:port
- 几乎所有命令都可以通过-h获取帮助
- 如果既有Broker地址(-b)配置项又有clusterName(-c)配置项,则优先以Broker地址执行命令,如果不配置Broker地址,则对集群中所有主机执行命令,只支持一个Broker地址。-b格式为ip:port,port默认是10911
- 在tools下可以看到很多命令,但并不是所有命令都能使用,只有在MQAdminStartup中初始化的命令才能使用,你也可以修改这个类,增加或自定义命令
- 由于版本更新问题,少部分命令可能未及时更新,遇到错误请直接阅读相关命令源码
2.1 Topic相关
名称 | 含义 | 命令选项 | 说明 |
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-]+$ ) |
deleteTopic | 删除Topic | -c | cluster 名称,表示删除某集群下的某个 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 消息队列offset | -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 | cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询),-b优先,如果没有-b,则对集群中所有Broker执行命令 |
updateOrderConf | 从NameServer上创建、删除、获取特定命名空间的kv配置,目前还未启用 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-t | topic,键 |
-v | orderConf,值 |
-m | method,可选get、put、delete |
allocateMQ | 以平均负载算法计算消费者列表负载消息队列的负载结果 | -t | topic 名称 |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-i | ipList,用逗号分隔,计算这些ip去负载Topic的消息队列 |
statsAll | 打印Topic订阅关系、TPS、积累量、24h读写总量等信息 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-a | 是否只打印活跃topic |
-t | 指定topic |
2.2 集群相关
名称 | 含义 | 命令选项 | 说明 |
clusterList | 查看集群信息,集群、BrokerName、BrokerId、TPS等信息 | -m | 打印更多信息 (增加打印出如下信息 #InTotalYest, #OutTotalYest, #InTotalToday ,#OutTotalToday) |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-i | 打印间隔,单位秒 |
clusterRT | 发送消息检测集群各Broker RT。消息发往${BrokerName} Topic。 | -a | amount,每次探测的总数,RT = 总时间 / amount |
-s | 消息大小,单位B |
-c | 探测哪个集群 |
-p | 是否打印格式化日志,以|分割,默认不打印 |
-h | 打印帮助 |
-m | 所属机房,打印使用 |
-i | 发送间隔,单位秒 |
-n | NameServer 服务地址,格式 ip:port |
2.3 Broker相关
名称 | 含义 | 命令选项 | 说明 |
updateBrokerConfig | 更新 Broker 配置文件,会修改Broker.conf | -b | Broker 地址,格式为ip:port |
-c | cluster 名称 |
-k | key 值 |
-v | value 值 |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
brokerStatus | 查看 Broker 统计信息、运行状态(你想要的信息几乎都在里面) | -b | Broker 地址,地址为ip:port |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
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 |
getBrokerConfig | 获取Broker配置 | -b | Broker 地址,地址为ip:port |
-n | NameServer 服务地址,格式 ip:port |
wipeWritePerm | 从NameServer上清除 Broker写权限 | -b | BrokerName |
-n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
cleanExpiredCQ | 清理Broker上过期的Consume Queue,如果手动减少对列数可能产生过期队列 | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
-b | Broker 地址,地址为ip:port |
-c | 集群名称 |
cleanUnusedTopic | 清理Broker上不使用的Topic,从内存中释放Topic的Consume Queue,如果手动删除Topic会产生不使用的Topic | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
-b | Broker 地址,地址为ip:port |
-c | 集群名称 |
sendMsgStatus | 向Broker发消息,返回发送状态和RT | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
-b | BrokerName,注意不同于Broker地址 |
-s | 消息大小,单位B |
-c | 发送次数 |
2.4 消息相关
名称 | 含义 | 命令选项 | 说明 |
queryMsgById | 根据offsetMsgId查询msg,如果使用开源控制台,应使用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 的地址,Broker 名称可以在 clusterList 查到) |
-i | query 队列 id |
-o | offset 值 |
-t | topic 名称 |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
queryMsgByUniqueKey | 根据msgId查询,msgId不同于offsetMsgId,区别详见常见运维问题。-g,-d配合使用,查到消息后尝试让特定的消费者消费消息并返回消费结果 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-i | uniqe msg id |
-g | consumerGroup |
-d | clientId |
-t | topic名称 |
checkMsgSendRT | 检测向topic发消息的RT,功能类似clusterRT | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-t | topic名称 |
-a | 探测次数 |
-s | 消息大小 |
sendMessage | 发送一条消息,可以根据配置发往特定Message Queue,或普通发送。 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-t | topic名称 |
-p | body,消息体 |
-k | keys |
-c | tags |
-b | BrokerName |
-i | queueId |
consumeMessage | 消费消息。可以根据offset、开始&结束时间戳、消息队列消费消息,配置不同执行不同消费逻辑,详见ConsumeMessageCommand。 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-t | topic名称 |
-b | BrokerName |
-o | 从offset开始消费 |
-i | queueId |
-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,但指定Message Queue | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-t | topic名称 |
-i | queueId |
-a | BrokerName |
-c | 字符集,例如UTF-8 |
-s | subExpress,过滤表达式 |
-b | 开始时间戳,格式参见-h |
-e | 结束时间戳 |
-p | 是否打印消息 |
-d | 是否打印消息体 |
-f | 是否统计tag数量并打印 |
resetOffsetByTime | 按时间戳重置offset,Broker和consumer都会重置 | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-g | 消费者分组 |
-t | topic名称 |
-s | 重置为此时间戳对应的offset |
-f | 是否强制重置,如果false,只支持回溯offset,如果true,不管时间戳对应offset与consumeOffset关系 |
-c | 是否重置c++客户端offset |
2.5 消费者、消费组相关
名称 | 含义 | 命令选项 | 说明 |
consumerProgress | 查看订阅组消费状态,可以查看具体的client IP的消息积累量 | -g | 消费者所属组名 |
-s | 是否打印client IP |
-h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
consumerStatus | 查看消费者状态,包括同一个分组中是否都是相同的订阅,分析Process Queue是否堆积,返回消费者jstack结果,内容较多,使用者参见ConsumerStatusSubCommand | -h | 打印帮助 |
-n | NameServer 服务地址,格式 ip:port |
-g | consumer group |
-i | clientId |
-s | 是否执行jstack |
updateSubGroup | 更新或创建订阅关系 | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
-b | Broker地址 |
-c | 集群名称 |
-g | 消费者分组名称 |
-s | 分组是否允许消费 |
-m | 是否从最小offset开始消费 |
-d | 是否是广播模式 |
-q | 重试队列数量 |
-r | 最大重试次数 |
-i | 当slaveReadEnable开启时有效,且还未达到从slave消费时建议从哪个BrokerId消费,可以配置备机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 | 暂未使用 |
2.6 连接相关
名称 | 含义 | 命令选项 | 说明 |
consumerConnection | 查询 Consumer 的网络连接 | -g | 消费者所属组名 |
-n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
producerConnection | 查询 Producer 的网络连接 | -g | 生产者所属组名 |
-t | 主题名称 |
-n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
2.7 NameServer相关
名称 | 含义 | 命令选项 | 说明 |
updateKvConfig | 更新NameServer的kv配置,目前还未使用 | -s | 命名空间 |
-k | key |
-v | value |
-n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
deleteKvConfig | 删除NameServer的kv配置 | -s | 命名空间 |
-k | key |
-n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
getNamesrvConfig | 获取NameServer配置 | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
updateNamesrvConfig | 修改NameServer配置 | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |
-k | key |
-v | value |
2.8 其他
名称 | 含义 | 命令选项 | 说明 |
startMonitoring | 开启监控进程,监控消息误删、重试队列消息数等 | -n | NameServer 服务地址,格式 ip:port |
-h | 打印帮助 |