详细解答可以参考官方帮助文档
OnsConsumerConnection 接口用于查询指定Consumer ID(CID)下当前客户端的连接情况。
一般用于判断指定 CID 的消费者是否在线,并获取详细的客户端连接的列表。
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
OnsRegionId | String | 是 | 当前查询 MQ 所在区域,可以通过 ONSRegionList 方法获取 |
OnsPlatform | String | 否 | 该请求来源,默认是从 POP 平台 |
PreventCache | Long | 是 | 用于 CSRF 校验,设置为系统当前时间即可 |
ConsumerId | String | 是 | 需要查询的消费端 CID |
名称 | 类型 | 描述 |
---|---|---|
RequestId | String | 为公共参数,每个请求独一无二 |
HelpUrl | String | 帮助链接 |
Data | List(ConnectionDo) | 指定 Consumer 的连接信息 |
ConnectionDo 数据结构
成员 | 类型 | 描述 |
---|---|---|
ClientId | String | 消费实例的 ID |
ClientAddr | String | 该消费实例的地址和端口 |
Language | String | 消费端语言 |
Version | String | 消费端版本 |
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);
OnsConsumerGetConnectionRequest request = new OnsConsumerGetConnectionRequest();
/**
*ONSRegionId 是指你需要 API 访问 MQ 哪个区域的资源.
*该值必须要根据 OnsRegionList 方法获取的列表来选择和配置,因为 OnsRegionId 是变动的,不能够写固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setConsumerId("RTDSQ_1013_GROUP");
try {
OnsConsumerGetConnectionResponse response=iAcsClient.getAcsResponse(request);
List<OnsConsumerGetConnectionResponse.Data.ConnectionDo> connectionDoList=response.getData().getConnectionList();
for(OnsConsumerGetConnectionResponse.Data.ConnectionDo connectionDo:connectionDoList){
System.out.println(connectionDo.getClientId()+" "+
connectionDo.getClientAddr()+" "+
connectionDo.getLanguage()+" "+
connectionDo.getVersion());
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。