全部产品
Search
文档中心

轻量消息队列(原 MNS):全链路追踪解决方案

更新时间:Mar 12, 2026

本文介绍轻量消息队列(原MNS)全链路追踪解决方案的核心能力、Trace定义及数据接入方案。

概述

在分布式应用系统中,多个服务间的交互涉及复杂的网络通信和数据传输。一次请求往往需要多个内部服务间的相互调用才能完成,消息队列作为服务间异步通信的核心组件,承担着削峰填谷、应用解耦等关键职责。当消息在生产者、消息队列和消费者之间传输时,任何一个环节出现问题都可能导致消息丢失、延迟或重复消费,且问题根源难以快速定位。

轻量消息队列(原MNS)全链路追踪解决方案通过记录消息在整个生命周期中的完整传输过程,提供详细的日志和性能数据。轻量消息队列支持将符合OpenTelemetry标准的Trace数据集成至阿里云的链路追踪服务中,帮助您快速诊断分布式消息系统中的异常问题。

核心能力

  • 生产消费审计:详细记录操作信息、执行时间和结果状态

  • 多条件查询:支持根据消息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应用监控集成

具体操作,请参见应用接入