全部產品
Search
文件中心

Simple Message Queue (formerly MNS):訊息軌跡

更新時間:Nov 07, 2025

輕量訊息佇列(原 MNS)提供訊息軌跡查詢功能,您可以通過訊息軌跡查詢訊息的完整鏈路資訊,包括訊息的發送、訂閱匹配、推送、消費等環節的時間、結果、生產者和消費者身份等資訊,協助您快速排查訊息收發過程中的異常問題。

使用情境

輕量訊息佇列(原 MNS)的訊息軌跡功能可以協助您解決以下問題:

  • 查看訊息是否發送成功:當您懷疑訊息沒有收到時,可以通過訊息軌跡確認訊息是否成功發送到隊列或主題,以及訊息是否被消費。

  • 排查訊息重複消費問題:當您發現同一條訊息被多次消費時,可以通過訊息軌跡查看訊息的完整消費記錄,包括每次消費的時間、消費者身份和消費結果。

  • 排查主題推送失敗問題:當主題的 HTTP 訂閱、郵件訂閱等推送失敗時,可以通過訊息軌跡查看推送的詳細狀態和失敗原因。

  • 排查訊息延遲問題:當您發現訊息消費延遲過高時,可以通過訊息軌跡查看訊息在各個環節的時間,定位延遲發生的環節。

  • 查看定時訊息的定時狀態:查看定時訊息是否已到達預設的定時時間。

  • 查詢生產者和消費者的身份資訊:查看訊息發送方的 IP 位址、AccessKey,以及消費者的 IP 位址等資訊,協助您進一步排查問題。

軌跡參數說明

隊列訊息軌跡

隊列訊息軌跡包含發送資訊、訊息資訊和消費資訊三部分。

發送資訊

普通發送情境

參數

說明

訊息來源

訊息的來源類型為生產者,指由生產者直接發送到隊列

方法

API 操作類型,例如:SendMessage、BatchSendMessage

生產者 IP

發送訊息的用戶端 IP 位址

AccessKey

發送訊息的 AccessKey

發送時間

訊息到達隊列的伺服器時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

死信情境

當訊息從原隊列進入無效信件佇列時,會產生一條新的發送軌跡記錄。

參數

說明

訊息來源

常量:死信

原隊列

訊息原本所在的隊列名稱

原隊列訊息 ID

訊息在原隊列中的 Message ID

發送時間

訊息進入無效信件佇列的時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

訂閱推送情境

當主題通過隊列訂閱將訊息推送到隊列時,會產生一條發送軌跡記錄。

參數

說明

訊息來源

常量:主題的隊列訂閱

主題

推送訊息的主題名稱

訂閱

推送訊息的訂閱名稱

原訊息 ID

訊息在主題中的 Message ID

發送時間

訊息推送到隊列的時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

其他雲產品情境

當事件通知通過隊列訂閱將訊息推送到隊列時,會產生一條發送軌跡記錄。

參數

說明

訊息來源

常量:其他雲產品

方法

常量:Notify

發送時間

訊息推送到隊列的時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

訊息資訊

普通訊息

參數

說明

訊息類型

常量:普通訊息

訊息 ID

訊息的唯一識別碼

隊列

訊息所在的隊列名稱

儲存時間長度

訊息在隊列中的最長儲存時間,對應隊列的 MessageRetentionPeriod 屬性

可見度逾時時間長度

訊息被消費後的預設不可見時間長度,對應隊列的 VisibilityTimeout 屬性

定時訊息

參數

說明

訊息類型

常量:定時訊息

訊息 ID

訊息的唯一識別碼

隊列

訊息所在的隊列名稱

儲存時間長度

訊息在隊列中的最長儲存時間,對應隊列的 MessageRetentionPeriod 屬性

可見度逾時時間長度

訊息被消費後的預設不可見時間長度,對應隊列的 VisibilityTimeout 屬性

定時時間長度

訊息的定時時間長度(秒)

預設定時結束時間

訊息預設的可消費時間

消費資訊

隊列的訊息消費軌跡按 ReceiptHandle 分組展示,每個 ReceiptHandle 代表訊息的一次消費會話。

參數

說明

本次結果

本次消費會話的最終結果,包括但不限於:

  • 消費成功:消費者成功刪除訊息

  • 無應答:消費者擷取訊息後未刪除,訊息可見度逾時後重新可消費

消費者 IP

接收或操作訊息的用戶端 IP 位址

AccessKey

操作訊息的 AccessKey

ReceiptHandle

訊息控制代碼,用於刪除訊息或修改訊息可見度

操作時間

執行操作的伺服器時間

操作

執行的 API 操作,包括:

  • ReceiveMessage:接收訊息

  • BatchReceiveMessage:批量接收訊息

  • DeleteMessage:刪除訊息

  • BatchDeleteMessage:大量刪除訊息

  • ChangeMessageVisibility:修改訊息可見度逾時時間

  • PeekMessage:查看訊息

  • BatchPeekMessage:批量查看訊息

說明
  • 一條訊息可能產生多個 ReceiptHandle,每次調用 ReceiveMessage 或 BatchReceiveMessage 都會產生新的 ReceiptHandle。

  • 如果消費者在訊息可見度逾時前刪除了訊息,則本次消費會話結果為"成功"。

  • 如果消費者擷取訊息後未刪除,訊息在可見度逾時後會重新可消費,產生新的 ReceiptHandle。

  • 如果使用已失效的 ReceiptHandle 操作訊息,會返回 404 錯誤。

主題訊息軌跡

主題訊息軌跡包含發送資訊、訂閱匹配資訊和推送資訊三部分。

發送資訊

普通發送情境

參數

說明

訊息來源

訊息的來源類型為生產者,指由生產者直接發送到主題

方法

API 操作類型,PublishMessage

生產者 IP

發送訊息的用戶端 IP 位址

AccessKey

發送訊息的 AccessKey

發送時間

訊息到達主題的伺服器時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

其他雲產品情境

當事件通知通過隊列訂閱將訊息推送到隊列時,會產生一條發送軌跡記錄。

參數

說明

訊息來源

常量:其他雲產品

方法

API 操作類型,PublishMessage

發送時間

訊息推送到主題的時間

結果

發送結果,顯示"成功"或具體的錯誤資訊

訂閱匹配資訊

主題收到訊息後,會根據訂閱的過濾條件(FilterTag)匹配合格訂閱,並向這些訂閱推送訊息。

參數

說明

訊息 ID

訊息的唯一識別碼

Tag

訊息的標籤,用於訂閱過濾

訂閱名

匹配到的訂閱名稱

訂閱類型

訂閱的終端節點類型,包括:

  • 隊列:推送到隊列

  • HTTP:推送到 HTTP/HTTPS 終端節點

  • 郵箱:通過Direct Mail

  • 阿里簡訊:通過簡訊推送

推送資訊

隊列訂閱

參數

說明

訊息 ID

推送到隊列後的新訊息 ID

消費結果

推送是否成功,顯示"成功"或具體的錯誤資訊

推送時間

開始推送的時間

處理耗時

推送耗時,單位為毫秒

其他訂閱(HTTP/郵箱/阿里簡訊)

參數

說明

推送結果

推送的狀態代碼和結果,包括:

  • 2xx

  • 4xx

  • 5xx

推送時間

開始推送的時間

處理耗時

推送耗時,單位為毫秒

使用限制

  • 訊息軌跡開關:訊息軌跡預設處於關閉狀態,可在訊息軌跡頁面手動開啟功能。

  • 查詢時間範圍:開始時間的取值範圍是近 15 天,每次查詢的時間跨度不超過 3 天。

計費說明

請參見訊息軌跡費用

訊息軌跡儲存時間長度

訊息軌跡資料儲存 15 天,超過 15 天的軌跡資料將被自動刪除,無法查詢。

查詢方式

輕量訊息佇列(原 MNS)提供 5 種訊息軌跡查詢方式,您可以根據實際情境選擇合適的查詢方式。

查詢方式

適用情境

返回結果

按訊息 ID 查詢

已知訊息 ID,需要查詢該訊息的完整軌跡

返回唯一的訊息軌跡

按 RequestID 查詢

已知 API 請求的 RequestID,需要查詢該請求涉及的訊息

返回該請求涉及的訊息軌跡

按隊列名查詢

需要查看某個隊列在一段時間內的所有訊息軌跡

返回該隊列在指定時間範圍內的訊息軌跡

按主題名查詢

需要查看某個主題在一段時間內的所有訊息軌跡

返回該主題在指定時間範圍內的訊息軌跡

按訂閱名查詢

需要查看某個訂閱在一段時間內推送的所有訊息軌跡

返回該訂閱在指定時間範圍內推送的訊息軌跡

說明
  • 如果已知訊息 ID,優先使用按訊息 ID 查詢,可以快速擷取精確結果。

  • 如果需要排查一段時間內的訊息問題,可以使用按隊列名、主題名或訂閱名查詢。

  • 按 RequestID 查詢適用於排查 API 呼叫問題,例如批量發送或批量消費的情境。

操作步驟

查詢訊息軌跡

  1. 登入輕量訊息佇列(原 MNS)控制台

  2. 在左側導覽列,選擇消息轨迹

  3. 在頂部功能表列,選擇地區。

  4. 點擊消息轨迹未开启按鈕,開啟訊息軌跡功能。

  5. 訊息軌跡頁面,根據需要選取查詢方式並輸入查詢條件。

    • 按訊息 ID 查詢:輸入訊息 ID,單擊查詢

    • 按 RequestID 查詢:輸入 API 請求的 RequestID,單擊查詢

    • 按隊列名查詢:選擇隊列名稱,選擇開始時間(最近 15 天內,時間跨度不超過 3 天),單擊查詢

    • 按主題名查詢:選擇主題名稱,選擇開始時間(最近 15 天內,時間跨度不超過 3 天),單擊查詢

    • 按訂閱名查詢:選擇主題和訂閱名稱,選擇開始時間(最近 15 天內,時間跨度不超過 3 天),單擊查詢

  6. 在查詢結果清單中,找到目標訊息,單擊操作列的詳情

  7. 在訊息軌跡詳情頁面,查看訊息的完整軌跡資訊。

    • 隊列訊息軌跡詳情:包含發送資訊、訊息資訊和消費資訊。

      • 發送資訊:查看訊息的來源、發送方法、生產者 IP、AccessKey、到達時間和發送結果。

      • 訊息資訊:查看訊息 ID、隊列名稱、儲存時間長度、可見度逾時時間長度等。如果是定時訊息,還會顯示定時時間長度和預設定時結束時間。

      • 消費資訊:按 ReceiptHandle 分組展示訊息的消費記錄。展開某個 ReceiptHandle,可以查看該消費會話的所有操作,包括接收、刪除、修改可見度等操作的時間、消費者 IP 和操作結果。

    • 主題訊息軌跡詳情:包含發送資訊、訂閱匹配資訊和推送資訊。

      • 發送資訊:查看訊息的發送方法、生產者 IP、AccessKey、到達時間和發送結果。

      • 訂閱匹配資訊:查看訊息 ID、Tag、匹配到的訂閱名稱和訂閱類型。

      • 推送資訊:查看每個訂閱的推送結果、推送時間等。對於隊列訂閱,會顯示推送後的新訊息 ID;對於 HTTP、郵件、簡訊訂閱,會顯示推送狀態代碼和推送耗時。

  8. (可選)如果需要查看隊列訂閱推送到隊列後的訊息軌跡,可以單擊推送資訊中的Message ID連結,跳轉到該隊列訊息的軌跡詳情。

常見問題

Q:為什麼查詢不到訊息軌跡?

A:可能的原因包括:

  • 訊息軌跡資料超過 15 天已被刪除。

  • 查詢的時間範圍不準確,建議適當擴大查詢時間範圍。

  • 訊息 ID 或 RequestID 輸入錯誤,請檢查後重新查詢。

Q:訊息軌跡中顯示"未響應"是什麼意思?

A:"未響應"表示消費者接收訊息後,在可見度逾時時間內既未刪除訊息,也未修改可見度逾時時間,導致訊息可見度逾時後重新可消費。建議檢查消費者程式是否正常處理訊息並刪除訊息。

Q:為什麼一條訊息有多個 ReceiptHandle?

A:每次調用 ReceiveMessage 或 BatchReceiveMessage API 接收訊息時,都會產生一個新的 ReceiptHandle。如果消費者接收訊息後未刪除,訊息可見度逾時後會重新可消費,此時再次接收會產生新的 ReceiptHandle。

Q:訊息軌跡會影響訊息收發的效能嗎?

A:訊息軌跡的記錄是非同步進行的,不會影響訊息收發的效能和可靠性。即使軌跡記錄失敗,也不會影響正常的訊息收發。