查询消费状态__消费管理相关接口_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-阿里云