閱讀550 返回首頁    go 英雄聯盟


查詢消費狀態__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲

本文介紹 OnsConsumerStatus 接口,該接口可以查詢指定訂閱組的詳細狀態數據,包含訂閱關係檢查,消費 TPS 統計,負載均衡狀態,消費端連接等。

1. 使用場景

消費者狀態查詢接口用於定位訂閱組的詳細狀態,一般用於在粗略判斷消費堆積以及客戶端在線情況後,需要排查消費異常的原因時調用.可以判斷出指定消費組(CID)的訂閱關係是否一致,負載均衡是否正常,以及在線客戶端的 Jstack 信息等。

注意:消費者狀態查詢接口需要調用後端大量接口完成數據聚合,因此查詢速度慢,不建議頻繁調用。

2. 請求參數列表

名稱 類型 是否必須 描述
OnsRegionId String 當前查詢 MQ 所在區域,可以通過 ONSRegionList 方法獲取
OnsPlatform String 該請求來源,默認是從 POP 平台
PreventCache Long 用於 CSRF 校驗,設置為係統當前時間即可
ConsumerId String 需要查詢的消費端 CID
Detail Boolean 是否查詢詳細信息
NeedJstack Boolean 是否打印 JStack 信息

3. 返回參數列表

名稱 類型 描述
RequestId String 為公共參數,每個請求獨一無二
HelpUrl String 幫助鏈接
Data ConsumerStatusDo 查詢結果

ConsumerStatusDo 數據結構

成員 類型 描述
Online Boolean 是否在線
TotalDiff Long 集群總的消費堆積
ConsumeTps Long 總消費 TPS
LastTimestamp Long 最後更新時間
DelayTime Long 延遲時間
ConsumeModel Long 消費模型
SubscriptionSame Boolean 訂閱關係是否一致
RebalanceOK Boolean 客戶端 Rebalance 是否正常
ConnectionSet List(ConnectionDo) 該集群當前在線客戶端信息
DetailInTopicList List(DetailInTopicDo) 各個 Topic 的消費情況
ConsumerConnectionInfoList List(ConsumerConnectionInfoDo) 該集群在線客戶端詳細信息,包含 Jstack、消費 RT 時間等信息

ConnectionDo 數據結構

成員 類型 描述
ClientId String 消費實例的 ID
ClientAddr String 該消費實例的地址和端口
Language String 消費端語言
Version String 消費端版本

DetailInTopicDo 數據結構

成員 類型 描述
Topic String Topic 名稱
TotalDiff Long 該 Topic 消費總堆積數
LastTimestamp Long 最後更新時間
DelayTime Long 延遲時間

ConsumerConnectionInfoDo 數據結構

成員 類型 描述
ClientId String 消費實例的 ID
Connection String 連接信息
Language String 客戶端語言
Version String 客戶端版本號
ConsumeModel String 消費類型,集群和廣播兩種
ConsumeType String 從何處消費
ThreadCount Integer 消費線程數
StartTimeStamp Long 開始時間
LastTimeStamp Long 最後更新時間
SubscriptionSet List(SubscriptionData) 訂閱關係集合
RunningDataList List(ConsumerRunningDataDo) 實時狀態統計
Jstack List(ThreadTrackDo) Jstack 堆棧信息

SubscriptionData 數據結構

成員 類型 描述
Topic String 訂閱的 Topic 名稱
SubString String 訂閱該 Topic 的子類別 Tag 表達式
SubVersion Long 訂閱關係版本號,為自增 long 型
TagsSet List(String) 訂閱的 Tag 集合

ConsumerRunningDataDo 數據結構

成員 類型 描述
ConsumerId String 訂閱方的 ConsumerId 名稱
Topic String 訂閱的 Topic 名稱
Rt Float 消費 RT 時間,單位 ms
OkTps Float 消費消息成功的 TPS 統計
FailedTps Float 消費消息失敗的 TPS 統計
FailedCountPerHour Long 每小時內消費失敗的消息數統計

ThreadTrackDo 數據結構

成員 類型 描述
Thread String 線程名稱
TrackList List(String) Jstack 堆棧信息字符串

4. 相關 API

  • OnsConsumerAccumulate:查詢消費堆積
  • OnsConsumerConnection:查詢消費方客戶端連接

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. OnsConsumerStatusRequest request = new OnsConsumerStatusRequest();
  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.setConsumerId("CID_Mingduan");
  27. request.setDetail(true);
  28. request.setNeedJstack(false);
  29. try {
  30. OnsConsumerStatusResponse response=iAcsClient.getAcsResponse(request);
  31. OnsConsumerStatusResponse.Data data =response.getData();
  32. List<OnsConsumerStatusResponse.Data.ConnectionDo> connectionDoList = data.getConnectionSet();
  33. List<OnsConsumerStatusResponse.Data.DetailInTopicDo> detailInTopicDoList =data.getDetailInTopicList();
  34. List<OnsConsumerStatusResponse.Data.ConsumerConnectionInfoDo> consumerConnectionInfoDoList =data.getConsumerConnectionInfoList();
  35. System.out.print(data.getOnline()+" "+data.getTotalDiff()+" "+data.getConsumeTps()+" "+
  36. data.getLastTimestamp()+" "+data.getDelayTime()+" "+data.getConsumeModel()+
  37. " "+data.getSubscriptionSame()+" "+data.getRebalanceOK());
  38. } catch (ServerException e) {
  39. e.printStackTrace();
  40. } catch (ClientException e) {
  41. e.printStackTrace();
  42. }
  43. }

最後更新:2016-11-23 18:55:45

  上一篇:go 查詢消費堆積__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲
  下一篇:go 查詢消費端連接__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲