开发者社区> 问答> 正文

如何查询分组列表

OnsMqttGroupIdList 接口用于查询目标 Region 里当前用户所拥有的所有 GroupId。

使用场景

获取 GroupId 列表的接口一般用于管理用户所有 GroupId 的场景,首先获取列表,然后可以针对单个 GroupId 进行相关的数据查询。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    当前操作的 MQ 所在区域,详情参见公共术语页面
OnsPlatform    String    否    请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二,用于排查定位问题
HelpUrl    String    帮助链接
Data    MqttGroupIdDo    GroupId 信息数据结构
MqttGroupIdDo 数据结构

名称    类型    描述
Id    Long    数据编号
ChannelId    Integer    访问的途径编号,阿里云环境为0
OnsRegionId    String    MQ 的 RegionId
RegionName    String    MQ 的 Region 名称
Owner    String    GroupId 所属账号
GroupId    String    GroupId
Topic    String    该 GroupId 关联的 Parent Topic
Status    Integer    当前状态(0 服务中 1 冻结 2 暂停)
CreateTime    Long    创建时间,单位是毫秒时间戳
UpdateTime    Long    最后更新时间,单位是毫秒时间戳
错误码列表



相关 API

OnsMqttQueryClientByGroupId:根据 GroupId 查询当前在线客户端数量
OnsMqttQueryHistoryOnline:根据 GroupId 查询历史在线数统计曲线
使用示例

本示例仅仅提供一个参考,从杭州接入点接入,获取杭州 Region 的所有 GroupId。

    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);
        OnsMqttGroupIdListRequest request = new OnsMqttGroupIdListRequest();
        /**
        *ONSRegionId是指你需要API访问MQ哪个区域的资源。
        *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
        */
        request.setOnsRegionId("XXXX");
        request.setPreventCache(System.currentTimeMillis());
        request.setAcceptFormat(FormatType.JSON);
        try {
          OnsMqttGroupIdListResponse response=iAcsClient.getAcsResponse(request);
          List<OnsMqttGroupIdListResponse.MqttGroupIdDo> groupIdList=response.getData();
          for(OnsMqttGroupIdListResponse.MqttGroupIdDo groupDo:groupIdList){
            System.out.println(groupDo.getId()+"  "+
                               groupDo.getChannelId()+"  "+
                               groupDo.getOnsRegionId()+"  "+
                               groupDo.getRegionName()+"  "+
                               groupDo.getOwner()+"  "+
                               groupDo.getGroupId()+"  "+
                               groupDo.getTopic()+"  "+
                               groupDo.getStatus()+"  "+
                               groupDo.getCreateTime()+"  "+
                               groupDo.getUpdateTime());
          }
        } catch (ServerException e) {
          e.printStackTrace();
        } catch (ClientException e) {
          e.printStackTrace();
        }
    }

展开
收起
猫饭先生 2017-10-27 14:01:21 1956 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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