全部產品
Search
文件中心

Simple Message Queue (formerly MNS):全鏈路追蹤解決方案

更新時間:Mar 13, 2026

本文介紹輕量訊息佇列(原MNS)全鏈路追蹤解決方案的核心能力、Trace定義及資料接入方案。

概述

在分布式應用系統中,多個服務間的互動涉及複雜的網路通訊和資料轉送。一次請求往往需要多個內部服務間的相互調用才能完成,訊息佇列作為服務間非同步通訊的核心組件,承擔著削峰填穀、應用解耦等關鍵職責。當訊息在生產者、訊息佇列和消費者之間傳輸時,任何一個環節出現問題都可能導致訊息丟失、延遲或重複消費,且問題根源難以快速定位。

輕量訊息佇列(原MNS)全鏈路追蹤解決方案通過記錄訊息在整個生命週期中的完整傳輸過程,提供詳細的日誌和效能資料。輕量訊息佇列支援將符合OpenTelemetry標準的TraceData Integration至阿里雲的鏈路追蹤服務中,協助您快速診斷分布式訊息系統中的異常問題。

核心能力

  • 生產消費審計:詳細記錄操作資訊、執行時間和結果狀態

  • 多條件查詢:支援根據訊息ID、隊列名稱、時間範圍等快速定位問題

  • 標準化整合:遵循OpenTelemetry標準,與應用追蹤資料無縫整合

  • 異常檢測:自動識別和標記異常鏈路,支援故障快速定位

Trace定義

輕量訊息佇列的追蹤實現遵循OpenTelemetry Messaging Spans規範,同時擴充了訊息佇列特有的屬性欄位。

通用Messaging Span屬性

輕量訊息佇列支援OpenTelemetry標準定義的通用訊息追蹤屬性,詳細定義請參考OpenTelemetry Messaging Spans規範

主要包括:

  • messaging.system:訊息系統標識

  • messaging.operation.name:操作名稱

  • messaging.operation.type:操作類型

  • messaging.destination.name:目標隊列或主題名稱

  • messaging.message.id:訊息ID

  • error.type:錯誤類型(當操作失敗時)

輕量訊息佇列特有屬性

除了標準屬性外,輕量訊息佇列還提供以下特有的Span屬性:

屬性名稱

類型

描述

樣本值

要求層級

messaging.smq.operation

string

輕量訊息佇列的具體操作方法名

SendMessage, ReceiveMessage, PublishMessage

必需

messaging.smq.request_id

string

請求的唯一識別碼

6733433D43444218004FAED2

必需

messaging.smq.message_tag

string

發送到主題的訊息標籤

order, payment

可選

messaging.smq.next_visible_time

int

訊息下次可見的時間戳記(秒)

1731413593

可選

messaging.smq.receipt_handle.in_response

string

接收訊息時返回的接收控制代碼

8-oMWXHzxBZlgIlzuz8ztxz0z8MHzcT8Z3Zsy3y0

可選

messaging.smq.receipt_handle.in_request

string

刪除或修改訊息時使用的接收控制代碼

8-oMWXHzxBZlgIlzuz8ztxz0z8MHzcT8Z3Zsy3y0

可選

messaging.smq.subscription.type

string

訂閱類型

HTTP, HTTPS, QUEUE

可選

屬性值說明

messaging.smq.operation支援的操作類型:

  • SendMessage:發送隊列訊息

  • BatchSendMessage:批量發送隊列訊息

  • ReceiveMessage:接收隊列訊息

  • BatchReceiveMessage:批量接收隊列訊息

  • DeleteMessage:刪除隊列訊息

  • BatchDeleteMessage:大量刪除隊列訊息

  • ChangeMessageVisibility:修改訊息可見時間

  • PeekMessage:查看隊列訊息

  • BatchPeekMessage:批量查看隊列訊息

  • PublishMessage:發布主題訊息

  • ConsumeMessage:消費訂閱訊息

  • AckMessage:確認訊息消費

  • Notify:推播通知

messaging.smq.subscription.type支援的訂閱類型:

  • HTTP:HTTP端點訂閱

  • HTTPS:HTTPS端點訂閱

  • QUEUE:隊列訂閱

使用限制

  • 目前僅Java SDK用戶端(>= 1.3.0)支援上報Trace資料至鏈路追蹤服務。SDK版本資訊,請參見版本記錄

Trace資料接入方案

輕量訊息佇列目前支援與應用即時監控服務 ARMS整合,實現追蹤資料的統一收集、儲存和分析。請參見什麼是應用監控

與ARMS應用監控整合

具體操作,請參見應用接入