开发者社区> 问答> 正文

消费端中文乱码

已解决

展开
收起
2017-12-21 22:52:33 1097 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    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 消费端版本

    相关 API

    • OnsConsumerStatus:消费者状态查询
    • OnsConsumerAccumulate:消费堆积查询

    使用示例

    
        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();
                }
            }
    
    2017-12-26 21:01:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载