调用OnsMessageTrace根据Message ID来判断目标消息是否曾被消费过。

使用说明

  • 本接口一般在消费异常,需要判断消息消费状态,初步排查原因时使用。
  • 本接口的实现基于消息队列RocketMQ版的内部位点机制,在大部分场景下判断结果可信,但如果应用方进行过重置位点已经清除消息等操作,则判断结果可能有误。

QPS限制

本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制

授权信息

默认仅限阿里云账号使用本接口,RAM用户只有在被授予了相关API操作权限后方可使用。本接口的授权信息如下表所示。更多信息,请参见权限策略和示例

API

Action

Resource(有命名空间)

Resource(无命名空间)

OnsMessageTrace

mq:QueryInstanceBaseInfo

mq:QueryMessageTrace

acs:mq:*:*:{instanceId}%{topic}

acs:mq:*:*:{topic}

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String OnsMessageTrace

系统规定参数。取值:OnsMessageTrace

Topic String test-mq_topic

消息的Topic。

MsgId String 1E05791C117818B4AAC23B1BB0CE****

需查询消息轨迹的消息ID,即Message ID。

InstanceId String MQ_INST_111111111111_DOxxxxxx

需查询的消息所对应的实例ID。

返回数据

名称 类型 示例值 描述
RequestId String EAE5BE23-37A1-4354-94D6-E44AE17E****

公共参数,每个请求的ID都是唯一的,可用于排查和定位问题。

Data Array of MessageTrack

查询结果。

MessageTrack
TrackType String CONSUMED

当前状态。取值说明如下:

  • CONSUMED:已消费。
  • CONSUMED_BUT_FILTERED:不符合Group ID的订阅条件,消息已被过滤,未消费。
  • NOT_CONSUME_YET:暂未消费。
  • NOT_ONLINE:客户端不在线。
  • UNKNOWN:其他问题。
ConsumerGroup String GID_test_group_id

订阅该Topic的消费者所对应的Group ID。

InstanceId String MQ_INST_111111111111_DOxxxxxx

需查询的消息所对应的实例ID。

示例

请求示例

http(s)://ons.cn-hangzhou.aliyuncs.com/?Action=OnsMessageTrace
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&MsgId=1E05791C117818B4AAC23B1BB0CE****
&Topic=test-mq_topic
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<OnsMessageTraceResponse>
<Data>
    <MessageTrack>
        <InstanceId>MQ_INST_111111111111_DOxxxxxx</InstanceId>
        <ConsumerGroup>GID_test_group_id</ConsumerGroup>
        <TrackType>CONSUMED</TrackType>
    </MessageTrack>
</Data>
<RequestId>EAE5BE23-37A1-4354-94D6-E44AE17****</RequestId>
</OnsMessageTraceResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "Data" : {
    "MessageTrack" : [ {
      "InstanceId" : "MQ_INST_111111111111_DOxxxxxx",
      "ConsumerGroup" : "GID_test_group_id",
      "TrackType" : "CONSUMED"
    } ]
  },
  "RequestId" : "EAE5BE23-37A1-4354-94D6-E44AE17E****"
}

错误码

访问错误中心查看更多错误码。

控制台操作

除了调用OnsMessageTrace接口,您还可以通过消息队列RocketMQ版控制台查看消息的消费状态。具体操作,请参见查询消息轨迹