550
阿裏雲
查詢消費狀態__消費管理相關接口_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. 使用示例
調用示例
public static void main(String []args) {String regionId = "cn-hangzhou";String accessKey = "XXXXXXXXXXXXXXXXX";String secretKey = "XXXXXXXXXXXXXXXXX";String endPointName ="cn-hangzhou";String productName ="Ons";String domain ="ons.cn-hangzhou.aliyuncs.com";/***根據自己需要訪問的區域選擇Region,並設置對應的接入點*/try {DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);} catch (ClientException e) {e.printStackTrace();}IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);IAcsClient iAcsClient= new DefaultAcsClient(profile);OnsConsumerStatusRequest request = new OnsConsumerStatusRequest();/***ONSRegionId是指你需要API訪問MQ哪個區域的資源.*該值必須要根據OnsRegionList方法獲取的列表來選擇和配置,因為OnsRegionId是變動的,不能夠寫固定值*/request.setOnsRegionId("daily");request.setPreventCache(System.currentTimeMillis());request.setAcceptFormat(FormatType.JSON);request.setConsumerId("CID_Mingduan");request.setDetail(true);request.setNeedJstack(false);try {OnsConsumerStatusResponse response=iAcsClient.getAcsResponse(request);OnsConsumerStatusResponse.Data data =response.getData();List<OnsConsumerStatusResponse.Data.ConnectionDo> connectionDoList = data.getConnectionSet();List<OnsConsumerStatusResponse.Data.DetailInTopicDo> detailInTopicDoList =data.getDetailInTopicList();List<OnsConsumerStatusResponse.Data.ConsumerConnectionInfoDo> consumerConnectionInfoDoList =data.getConsumerConnectionInfoList();System.out.print(data.getOnline()+" "+data.getTotalDiff()+" "+data.getConsumeTps()+" "+data.getLastTimestamp()+" "+data.getDelayTime()+" "+data.getConsumeModel()+" "+data.getSubscriptionSame()+" "+data.getRebalanceOK());} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}}
最後更新:2016-11-23 18:55:45
上一篇:
查詢消費堆積__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲
下一篇:
查詢消費端連接__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲
DeleteBucketLogging__關於Bucket的操作_API 參考_對象存儲 OSS-阿裏雲
模煳搜索詳解__功能篇_最佳實踐_開放搜索-阿裏雲
修改實例SSL鏈路__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
FreeBSD係統盤擴容、分區、掛載__擴容磁盤概覽_磁盤_用戶指南_雲服務器 ECS-阿裏雲
基於 Jenkins 的持續交付__DevOps_用戶指南_容器服務-阿裏雲
nodejs日誌__常見日誌格式_用戶指南_日誌服務-阿裏雲
JavaSDK手冊__SDK使用手冊_郵件推送-阿裏雲
後端ECS為何訪問不了負載均衡實例__後端 ECS 服務器常見問題_常見問題_負載均衡-阿裏雲
查看備份策略__備份恢複_API 參考_雲數據庫 RDS 版-阿裏雲
Logstash接入Windows平台日誌__logtail(Agent)_用戶指南_日誌服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲