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

本接口的实现基于消息队列 Apache RocketMQ 版(简称 RocketMQ)的内部位点机制,在大部分场景下判断结果可信,但如果应用方进行过重置位点已经清除消息等操作,则判断结果可能有误。

调试

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

请求参数

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

系统规定参数。取值:OnsMessageTrace。

MsgId String 1E05791C117818B4AAC23B1BB0CE****

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

Topic String test-mq_topic

消息的 Topic

InstanceId String MQ_INST_111111111111_DOxxxxxx

需查询的消息所对应的实例 ID。针对有独立命名空间的实例,该参数为必填。

返回数据

名称 类型 示例值 描述
Data

查询结果

MessageTrack

查询结果

ConsumerGroup String GID_test_group_id

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

InstanceId String MQ_INST_111111111111_DOxxxxxx

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

TrackType String CONSUMED

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

  • CONSUMED:已消费
  • CONSUMED_BUT_FILTERED:已被过滤
  • NOT_CONSUME_YET:暂未消费
  • NOT_ONLINE:客户端不在线
  • UNKNOWN:其他问题
RequestId String EAE5BE23-37A1-4354-94D6-E44AE17E06A7

为公共参数,每个请求的 ID 都是唯一的

示例

请求示例


http(s)://[Endpoint]/?Action=OnsMessageTrace
&MsgId=1E05791C117818B4AAC23B1BB0CE****
&Topic=test-mq_topic
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&<公共请求参数>

正常返回示例

XML 格式

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

JSON 格式

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

错误码

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