阅读367 返回首页    go 魔兽


消息轨迹查询__消息管理相关接口_Open API_消息队列 MQ-阿里云

本文档介绍 OnsMessageTrack 接口,该接口用于判断目标 MsgId 对应的消息是否已经消费过。

1. 使用场景

MessageTrack 接口一般用于判断指定的消息是否曾经被消费过,查询条件为单条消息的 MsgId。需要注意的是 MessagTrack 的实现基于 MQ 的内部位点机制,在大部分场景下判断结果可信,但如果应用方进行过重置位点已经清除消息等操作,则判断结果可能有误。

2. 请求参数列表

名称 类型 是否必须 描述
OnsRegionId String 当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取
OnsPlatform String 该请求来源,默认是从 POP 平台
PreventCache Long 用于 CSRF 校验,设置为系统当前时间即可
Topic String 消息的 Topic
MsgId String 消息 ID

3. 返回参数列表

名称 类型 描述
RequestId String 为公共参数,每个请求独一无二
HelpUrl String 帮助链接
Data List(MessageTrack) 查询结果

MessageTrack 数据结构

名称 类型 描述
ConsumerGroup String 消费集群名称
TrackType String 当前状态
ExceptionDesc String 异常描述

4. 相关 API

  • OnsMessageGetByMsgId:根据 MsgId 精确查询消息

5. 使用示例

调用示例

  1. public static void main(String []args) {
  2. String regionId = "cn-hangzhou";
  3. String accessKey = "XXXXXXXXXXXXXXXXX";
  4. String secretKey = "XXXXXXXXXXXXXXXXX";
  5. String endPointName ="cn-hangzhou";
  6. String productName ="Ons";
  7. String domain ="ons.cn-hangzhou.aliyuncs.com";
  8. /**
  9. *根据自己需要访问的区域选择Region,并设置对应的接入点
  10. */
  11. try {
  12. DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
  13. } catch (ClientException e) {
  14. e.printStackTrace();
  15. }
  16. IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
  17. IAcsClient iAcsClient= new DefaultAcsClient(profile);
  18. OnsMessageTraceRequest request = new OnsMessageTraceRequest();
  19. /**
  20. *ONSRegionId是指你需要API访问MQ哪个区域的资源.
  21. *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
  22. */
  23. request.setOnsRegionId("daily");
  24. request.setPreventCache(System.currentTimeMillis());
  25. request.setAcceptFormat(FormatType.JSON);
  26. request.setTopic("MingduanTest");
  27. request.setMsgId("0A91883700001F90000001BF4723CB3E");
  28. try {
  29. OnsMessageTraceResponse response=iAcsClient.getAcsResponse(request);
  30. List<OnsMessageTraceResponse.MessageTrack> trackList =response.getData();
  31. for (OnsMessageTraceResponse.MessageTrack track:trackList){
  32. System.out.println(track.getConsumerGroup()+" "+track.getTrackType()+" "+track.getExceptionDesc());
  33. }
  34. } catch (ServerException e) {
  35. e.printStackTrace();
  36. } catch (ClientException e) {
  37. e.printStackTrace();
  38. }
  39. }

最后更新:2016-11-23 16:04:04

  上一篇:go 查询消费进度__消费管理相关接口_Open API_消息队列 MQ-阿里云
  下一篇:go 根据 Key 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云