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