閱讀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-阿裏雲