在使用Kafka的過程中遇到無法正確消費訊息、訊息丟失、訊息延遲等消費問題時,您可通過訊息查詢功能查看指定訊息的詳細內容和相關屬性,協助您排查異常原因。若確定訊息所在Topic的分區ID以及訊息位點,可採用按位點查詢訊息;若不確定訊息的位置,但確定訊息發送的時間段,可採用按時間查詢訊息。
注意事項
查詢到的每條訊息在雲訊息佇列 Kafka 版控制台上最多顯示1 KB的內容,超過1 KB的部分將自動截斷。如需查看完整的訊息內容,請下載相應的訊息,下載的訊息最大為10 MB,如果超過10 MB,則只下載10 MB的內容。
查詢結果最多顯示10條訊息,且總大小不能超過10 MB。
如果3條訊息的總大小已經超過10 MB,那麼控制台上只顯示2條訊息。
如果10條訊息的總大小少於10 MB,在控制台上最多也只能看到10條訊息。在這樣的情況下,請以用戶端的實際消費為準。
能否查詢到訊息,與雲訊息佇列 Kafka 版的訊息清除策略相關:
磁碟使用率低於75%,每天淩晨4點集中刪除超過訊息保留時間長度的訊息。
磁碟使用率介於[75%,85%)區間,定期刪除超過訊息保留時間長度的訊息,直到磁碟水位降到75%以下。
磁碟使用率介於[85%,90%)區間,無論訊息是否超過訊息保留時間長度,根據服務端儲存訊息的時間先後順序直接清除訊息。
磁碟使用率≥90%,為了保證穩定性,服務開啟禁防寫保護,暫時無法寫入新訊息。
重要雲訊息佇列 Kafka 版在清除訊息時,會至少保留一個隱藏檔。因此,您有可能查詢到超過訊息保留時間的訊息。
按位點查詢訊息
在概览頁面的资源分布地區,選擇地區。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,單擊消息查询。
在消息查询頁面的查询方式列表中,選擇按位点查询。
在Topic列表中,選擇訊息所屬Topic名稱;在分区列表中,選擇訊息所屬的分區;在起始位点文字框,輸入訊息所在分區的位點,然後單擊查询。
展示該查詢位點及以後連續的訊息。例如,指定的分區和位點都為“5”,那麼返回的結果從分區“5”的位點“5”開始。
表 1. 查詢結果參數解釋 參數
描述
分区
訊息的Topic分區。
位点
訊息的所在的位點。
Key
訊息的鍵(已強制轉化為String類型)。
Value
訊息的值(已強制轉化為String類型),即訊息的具體內容。
消息创建时间
發送訊息時,用戶端內建的或是您指定的
ProducerRecord
中的訊息建立時間。說明如果配置了該欄位,則按配置值顯示。
如果未配置該欄位,則預設取訊息發送時的系統時間。
如果顯示值為1970/x/x x:x:x,則說明發送時間配置為0或其他有誤的值。
0.9及以前版本的雲訊息佇列 Kafka 版用戶端不支援配置該時間。
操作
單擊下载 Key:下載訊息的索引值。
單擊下载 Value:下載訊息的具體內容。
按時間查詢訊息
按時間查詢允許查詢全部分區的訊息,不確定訊息的位置,但確定訊息發送的時間段,請指定該時間段中的某一個時間點查詢該時間點附近的訊息。
在消息查询頁面的查询方式列表中,選擇按时间点查询。
在Topic列表中,選擇訊息所屬Topic名稱;在分区列表中,選擇訊息所屬的分區;在时间点中,選擇需查詢的時間點,然後單擊查询。
展示該查詢時間點及之後連續的訊息。查詢結果的參數,請參見查詢結果參數解釋。
如果選擇全部分区,則顯示全部分區。
如果指定具體分區,則顯示指定分區的訊息。