消息軌跡是指一條消息從生產者發送到消息隊列服務端,再到消費者消費處理,整個過程中的各個相關節點的時間、狀態等數據匯聚而成的完整鏈路信息。本文介紹如何快速查詢消息軌跡。
前提條件
您的消息已從生產者發送。
操作步驟
登錄 SOFAStack 控制臺。
在左側導航欄,選擇 中間件 > 消息隊列 > 消息軌跡。
單擊 創建查詢任務,您可選擇以下查詢維度,然后按頁面提示輸入相應信息。
按 Message ID 查詢:該方式屬于精確查詢,速度快,精確匹配,推薦使用。
按 Message Key 查詢:該方式屬于模糊查詢,最多查詢 64 條消息軌跡。僅適用于您沒有記錄 Message ID 但是設置了 Message Key,同時 Message Key 具有區分度的情況。
按 Topic 查詢:該方式屬于范圍查詢,適用于沒有上述 Message ID 和 Message Key,而且消息量比較小的場景。因為時間范圍內消息很多,且不具備區分度。
單擊 確定。
創建完成后,即可在消息軌跡頁面查看到剛創建的查詢任務,且任務狀態顯示查詢中,說明暫不能查看消息軌跡。
在消息軌跡頁面,單擊 刷新,直到狀態切換至查詢完成。單擊展開圖標可查看到軌跡的簡要信息,包括消息本身的屬性以及接收狀態的信息。
單擊 查看軌跡 即可查看完整的鏈路圖,如下圖所示。
該軌跡圖提供了以下角色及相關信息:
生產者:
發送時間:消息從生產者發送時的客戶端時間戳。
發送耗時:生產者調用 Send 方法發送消息的毫秒耗時。
發送狀態:
發送成功:消息發送成功,服務端已經存儲成功。
發送失敗:消息發送失敗,服務端沒有存儲消息,需要重試。
消息定時中:該消息是定時或者延時消息,且尚未到達投遞時間。
事務未提交:該消息是事務消息,且尚未提交狀態。
事務回滾:該消息是事務消息,并且已經回滾。
Topic:
Key:消息的業務標識,由消息生產者設置,唯一標識某個業務邏輯。
Tag:消息標簽,二級消息類型,用來進一步區分某個 Topic 下的消息分類。
消費者:
耗時:消息推送到客戶端之后執行 consumeMessage 方法的耗時。
投遞時間:客戶端執行 consumeMessage 方法開始消費消息時的時間戳。
消費狀態:
全部成功:該消息的所有投遞都已成功消費。
部分成功:該消息投遞中存在消費失敗的情況,或消費失敗并重試成功的情況。
全部失敗:該消息的所有投遞都消費失敗。
尚未消費:該消息尚未投遞給任何消費方。
消費結果未返回:消費消息的方法尚未返回結果,或者被中斷,導致本次消費結果未傳回服務端。
消費成功:該消息已被成功消費。
消費失敗:消費消息的方法主動返回失敗標志,或者是消費方法拋異常。
如需刪除某個查詢任務,可在消息軌跡任務列表頁找到目標任務,單擊其操作列的 刪除,按提示完成刪除。
單元化說明
在 LDC 單元化架構環境下,您可以選定單元創建消息查詢任務,如下圖所示。
查詢出的消息軌跡圖中,您也可以獲取到生產者、Topic 與消費者所在的 Zone 信息,如下圖所示。