978
阿裏雲
消息查詢__控製台使用指南_消息隊列 MQ-阿裏雲
MQ 控製台提供幾種消息查詢方式用於問題排查。
適用場景
MQ 提供了三種消息查詢的方式,分別是根據 Messag ID,Message Key 以及 Topic 查詢。三種方式的特點和對比如下。
查詢方式 | 查詢條件 | 查詢類別 | 說明 |
---|---|---|---|
Message ID 查詢 | Topic+Message ID | 精確查詢 | 根據 Message ID 可以精確定位任意一條消息,獲取消息的屬性 |
Message Key 查詢 | Topic+Message Key | 模煳查詢 | 根據 Message Key 可以匹配到包含指定 Key 的最近 64 條消息,建議消息生產方為每條消息設置盡可能唯一的 Key,以確保相同的 Key 的消息不會超過 64 條,否則消息會漏查 |
Topic 查詢 | Topic+時間段 | 範圍查詢 | 根據 Topic 和時間範圍,批量獲取符合條件的所有消息,查詢量大,不易匹配 |
建議查詢過程:
根據 Message ID 查詢
根據 Message ID 查詢消息屬於精確查詢,用戶輸入 Message ID 信息即可精確查詢到任意一條消息。因此,為了盡可能精確地查詢,建議發送方調用 Producer 發送消息時,在發送消息成功後將 Message ID 信息打印到日誌中,方便問題排查。
以 Java SDK 為例,獲取 Message ID 的方法如下:
SendResult sendResult = producer.send(msg);
String msgId = sendResult.getMessageId();
查詢結果說明
查詢到消息後,您可以在消息詳情頁麵看到每條消息的基本屬性,消息體下載鏈接以及消息的消費狀態,如下圖所示:
其中,投遞狀態是 MQ 根據各個 Consumer ID 的消費進度計算出的結果,投遞狀態的信息參考以下表格。
注意:投遞狀態僅僅是根據消費進度估算的結果,如果需要詳細的消費信息,請使用消息軌跡工具查詢。消息軌跡可以展示該條消息的完整鏈路,具體請參見查詢消息軌跡。
投遞狀態表
投遞狀態 | 可能的原因 |
---|---|
已訂閱,並且消息已被消費 | 該訂閱組已經正常消費過這條消息 |
已訂閱,但消息被過濾表達式過濾,請查看 Tag | 該消息的 Tag 不符合消費方的訂閱關係,消息被過濾,可以在控製台>訂閱管理>消費者狀態查詢菜單查詢訂閱方的訂閱關係 |
已訂閱,但消息未被消費 | 該訂閱組訂閱了該消息,但還未消費,有可能是消費過慢,或者消費出現異常導致阻塞 |
已訂閱,但是訂閱組當前不在線 | 該訂閱組訂閱了該消息,但是不在線,請檢查消費者端應用不在線的原因 |
未知異常 | 出現未收錄異常,可以進工單係統提工單解決 |
消費驗證
MQ提供了消費驗證功能,該功能可以將指定消息推送給指定的在線客戶端,以檢測客戶端消費該消息的邏輯和結果是否符合預期。
注意:消費驗證功能僅僅是用於驗證客戶端的消費邏輯是否正常,並不會影響正常的收消息流程,因此消息的消費狀態等信息在點擊消費驗證後並不會改變。
根據 Message Key 查詢
Message Key 查詢消息的原理是,MQ 根據用戶設置的 Message Key 信息建立消息的索引信息,當用戶輸入 Key 進行查詢時,根據該索引即可匹配相關的消息返回。
注意:
- Message Key 查詢條件是用戶設置的 Message Key 屬性。
- Message Key 查詢僅僅返回符合條件的最近的 64 條消息,因此建議業務方設置 Key 時盡可能唯一,並具有業務區分度。
設置 Message Key 的方法:
Message msg = new Message("Topic","*","Hello MQ".getBytes());
/**
* 對每條消息設置其檢索的Key,該Key值設置代表消息的業務關鍵屬性,請盡可能全局唯一。
* 以方便您在無法正常收到消息情況下,可通過MQ控製台查詢消息。不設置也不會影響消息正常收發
*/
msg.setKey("TestKey"+System.currentTimeMillis());
查詢樣例如下圖所示:
根據 Topic 查詢
根據 Topic 查詢一般用在前兩種查詢條件都無法獲得的情況下,根據 Topic 和消息的發送時間範圍,批量獲取該時間範圍內的所有消息,然後再找到關心的數據。
注意:
- Topic 查詢屬於範圍查詢,獲取 Topic 下符合時間條件的所有消息,消息量大,建議盡量縮短查詢區間。
- Topic 查詢數據量大,采用分頁展示。
查詢樣例如下圖所示:
最後更新:2016-11-23 16:04:04
上一篇:
發布訂閱管理__控製台使用指南_消息隊列 MQ-阿裏雲
下一篇:
MQTT 管理__控製台使用指南_消息隊列 MQ-阿裏雲
休閑娛樂_阿裏雲幫助中心-阿裏雲,領先的雲計算服務提供商
設備認證相關問題__產品常見問題_阿裏雲物聯網套件-阿裏雲
VPC創建vswitch提示Specified CIDR block overlapped with other subnets__異常處理_用戶指南_專有網絡 VPC-阿裏雲
返回值為空__錯誤說明_API 網關-阿裏雲
設置拖拽播放__配置操作接口_API 手冊_CDN-阿裏雲
Dubbo 標簽兼容能力__EDAS 中的 Dubbo 開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
如何添加RDS IP白名單__常見問題_產品使用問題_數據集成-阿裏雲
scale__服務編排文檔_用戶指南_容器服務-阿裏雲
管理生命周期__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲
歸檔存儲數據獲取為什麼需要等待__數據操作常見問題_產品使用問題_歸檔存儲-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲