调用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 |
当前状态。取值说明如下:
|
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版控制台查看消息的消费状态。具体操作,请参见查询消息轨迹。