使用 OnsMessagePageQueryByTopic 通过传入 Topic 名称和时间段,分页查询指定时间段内该 Topic 内存在的所有消息。

按 Topic 查询消息的方式属于范围查询,查询结果会通过分页的方式展示给调用方,仅适用于没有任何搜索条件(Message ID 和 Message Key)查询场景。需注意的是,根据 Topic 查询消息应尽可能缩短查询的时间区间,否则匹配的消息过多,将无法定位问题。

调用流程如下所示:

1. 传入 Topic、起止时间以及每页的大小,进行分页查询。如果有消息,默认返回第一页的消息、总页数和查询任务 ID。

2. 根据返回的结果中的查询任务 ID,进行后续取消息,取消息时传入查询任务 ID 以及当前页数。

调试

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

请求参数

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

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

BeginTime Long 1570723200000

查询范围的起始时间戳。

CurrentPage Integer 2

当前取第几页消息,从 1 开始递增,最大值为 50,取消息时不可超过最大页数。

EndTime Long 1570809600000

查询范围的终止时间戳。

InstanceId String MQ_INST_111111111111_DOxxxxxx

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

Topic String test-mq_topic

需查询的消息的 Topic 名称。

TaskId String 0BC1310300002A9F000021E4D7A48346

查询任务的 ID,首次查询不需要输入,后续取消息必须传入,根据前一次的返回结果取出该字段。

PageSize Integer 5

分页查询,每页最多显示消息数量,默认是 20,最小 5 条,最多 50 条。

返回数据

名称 类型 示例值 描述
MsgFoundDo Struct

查询结果。

CurrentPage Long 1

当前位于第几页。

MaxPageCount Long 400

查询结果最大页数。

MsgFoundList Array

当前页的消息集合,该类型与 OnsMessageGetByMsgId 的返回结果一致。

OnsRestMessageDo
BodyCRC Integer 914112295

消息体 CRC 校验值。

BornHost String 42.120.***.***:59270

生成该消息的客户端实例。

BornTimestamp Long 1570760999721

生成时间戳。

InstanceId String MQ_INST_111111111111_DOxxxxxx

实例 ID。

MsgId String 1E0578FE110F18B4AAC235C05F2*****

消息 ID,即 Message ID。

PropertyList Array

消息属性查询。

MessageProperty
Name String TAGS

消息属性。取值说明如下:

  • TRACE_ON:是否有消息轨迹
  • KEYS:消息的 Key 属性
  • TAGS:消息的 Tag 属性
  • INSTANCE_ID:消息所在的实例的 ID

更多概念信息请参见名词解释

Value String TagA

消息属性的取值。

ReconsumeTimes Integer 1

消息重试消费的次数。

StoreHost String 11.193.***.***:10911

存储该消息的服务器实例。

StoreSize Integer 406

消息大小。

StoreTimestamp Long 1570760999811

被服务端存储的时间戳。

Topic String test-mq_topic

消息的 Topic。

TaskId String 0BC1310300002A9F000021E4D7A48346

第一次新建查询时,返回的查询任务 ID,用于后续取消息。

RequestId String 5DC2A47E-2B31-4722-96C8-FA59C9*****

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

示例

请求示例

http(s)://[Endpoint]/?Action=OnsMessagePageQueryByTopic
&BeginTime=1570723200000
&CurrentPage=2
&EndTime=1570809600000
&InstanceId=MQ_INST_111111111111_DOxxxxxx
&Topic=test-mq_topic
&<公共请求参数>

正常返回示例

XML 格式

<OnsMessagePageQueryByTopicResponse>
    <MsgFoundDo>
            <MaxPageCount>400</MaxPageCount>
            <MsgFoundList>
                    <OnsRestMessageDo>
                            <MsgId>1E0578FE110F18B4AAC235C05F2*****</MsgId>
                            <InstanceId>MQ_INST_111111111111_DOxxxxxx</InstanceId>
                            <ReconsumeTimes>1</ReconsumeTimes>
                            <BornHost>42.120.***.***:59270</BornHost>
                            <StoreTimestamp>1570760999811</StoreTimestamp>
                            <StoreHost>11.193.***.***:10911</StoreHost>
                            <BodyCRC>914112295</BodyCRC>
                            <Topic>test-mq_topic</Topic>
                            <BornTimestamp>1570760999721</BornTimestamp>
                            <StoreSize>406</StoreSize>
                            <PropertyList>     
                                    <MessageProperty>
                                            <Name>TAGS</Name>
                                            <Value>TagA</Value>
                                    </MessageProperty>
                            </PropertyList>
                    </OnsRestMessageDo>
            </MsgFoundList>
            <TaskId>0BC1310300002A9F000021E4D7A48346</TaskId>
            <CurrentPage>1</CurrentPage>
    </MsgFoundDo>
    <RequestId>5DC2A47E-2B31-4722-96C8-FA59C9*****</RequestId>
</OnsMessagePageQueryByTopicResponse>

JSON 格式

{
  "MsgFoundDo": {
    "MaxPageCount": 400,
    "MsgFoundList": {
      "OnsRestMessageDo": [
        {
          "MsgId": "1E0578FE110F18B4AAC235C05F2*****",
          "ReconsumeTimes": 1,
          "BornHost": "42.120.***.***:59270",
          "StoreTimestamp": 1570760999811,
          "StoreHost": "11.193.***.***:10911",
          "BodyCRC": 914112295,
          "Topic": "test-mq_topic",
          "BornTimestamp": 1570760999721,
          "StoreSize": 406,
          "PropertyList": {
            "MessageProperty": [
              {
                "Name": "TAGS",
                "Value": "TagA"
              }
            ]
          }
        }
      ]
    },
    "TaskId": "0BC1310300002A9F000021E4D7A48346",
    "CurrentPage": 1
  },
  "RequestId":"5DC2A47E-2B31-4722-96C8-FA59C9*****"
}

错误码

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