管理工具
注意事項
- 執行命令:
./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 | 方法,選擇性 get、put、delete | ||
allocateMQ | 使用平均負載演算法計算消費者清單中訊息佇列的負載結果。 | -t | 主題名稱 |
-h | 打印幫助 | ||
-n | NameServer地址,格式為ip:port | ||
-i | ip 清單,以逗號分隔,計算主題中這些 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 | uniqe 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 | 依據 key 查詢訊息。 | -k | msgKey |
-t | 主題名稱 | ||
-h | 打印幫助 | ||
-n | NameServer 位址,格式為 ip:port | ||
queryMsgByOffset | 依據偏移量查詢訊息 | -b | Broker 名稱(請注意,這應該是 Broker 的名稱,而非位址。Broker 的名稱可以在 clusterList 中找到。) |
-i | 查詢佇列 ID | ||
-o | 位移值 | ||
-t | 主題名稱 | ||
-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 | 主題名稱 | ||
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 | 消費者狀態是指消費者的狀態,包括同一群組中的所有消費者是否具有相同的訂閱、處理佇列是否堆疊,以及消費者的 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 | 代理伺服器地址 | ||
-c | 叢集名稱 | ||
-g | 消費者群組名稱 | ||
-s | 群組是否允許消費 | ||
-m | 是否從最小的偏移量開始消費。 | ||
-d | 是否為廣播模式。 | ||
-q | 重試佇列數。 | ||
-r | 最大重試次數 | ||
-i | 當 slaveReadEnable 開啟,且尚未到達建議從備用伺服器消費的點時,可以設定備用機器 ID 從備用機器主動消費。 | ||
-w | 如果 Broker 建議從備用伺服器消費,則設定決定從哪個備用伺服器消費。可以設定 BrokerId,例如 1。 | ||
-a | 當消費者數量變更時,是否通知其他消費者進行負載平衡。 | ||
deleteSubGroup | 從 Broker 中移除訂閱 | -n | NameServer地址,格式為ip:port |
-h | 打印幫助 | ||
-b | 代理伺服器地址 | ||
-c | 叢集名稱 | ||
-g | 消費者群組名稱 | ||
cloneGroupOffset | 使用來源消費者群組中的偏移量,在目標消費者群組中。 | -n | NameServer 位址,格式為 ip:port |
-h | 打印幫助 | ||
-s | 來源消費者群組 | ||
-d | 目標消費者群組 | ||
-t | 主題名稱 | ||
-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 | 打印幫助 |