开发者社区> 问答> 正文

如何查询指定订阅信息

OnsSubscribeGet 接口用于查询目标 CID 的详细信息。

使用场景

MQ 使用过程中如果需要对订阅关系进行管理,获取账号下 CID 的详细信息,可以调用该接口获取信息。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    设置所要查询的区域,具体值通过OnsRegionList接口获取
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
ConsumerId    String    是    需要查询的订阅关系的 CID
Topic    String    是    需要查询的 Topic
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
Data    List(SubscribeInfoDo)    查询到的订阅关系集合
SubscribeInfoDo 数据结构

名称    类型    描述
Id    Long    订阅信息在数据库中的索引编号
channelId    Integer    该 Topic 所在区域 ID,0-ALIYUN,1-CLOUD,2,3,4
channelName    String    该 Topic 所在区域名称,ALIYUN 代表阿里云,CLOUD 代表聚石塔,…
onsRegionId    Long    该 Topic 所在区域 ID,就是 ONSRegionList 方法获取的内容
regionName    String    该 Topic 所在区域名称
Owner    String    该发布信息的拥有者
ConsumerId    String    消费集群 ID
Topic    String    Topic 名称
Status    Long    当前状态
StatusName    String    状态名称,服务中,已下线等
CreateTime    Long    创建时间
UpdateTime    Long    最后更新时间
相关 API

OnsSubcribeCreate:创建订阅关系
OnsSubcribeDelete:删除订阅关系
OnsSubscribeList:获取订阅关系列表
使用示例

本示例在 daily 区域下查询名为 CID_Mingduan 的订阅组信息,并打印。

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

展开
收起
猫饭先生 2017-10-27 13:35:41 1882 0
0 条回答
写回答
取消 提交回答
问答地址:
问答排行榜
最热
最新

相关电子书

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