OnsSubscribeSearch 接口通过 Topic 或者 CID 信息搜索符合条件的 CID 信息。
使用场景
OnsSubscribeSearch 接口一般用于不确定 CID 名称的时候,可以通过 Topic 来搜索 CID 信息。
请求参数列表
名称 类型 是否必须 描述
OnsRegionId String 是 当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取
OnsPlatform String 否 该请求来源,默认是从 POP 平台
PreventCache Long 是 用于 CSRF 校验,设置为系统当前时间即可
Search String 是 搜索的关键词,可以是 Topic 或者 CID
返回参数列表
名称 类型 描述
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:获取订阅关系列表
使用示例
本示例通过设定搜索条件 CID_Mingduan 来获取符合的 CID 信息,并打印。
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);
OnsSubscriptionSearchRequest request = new OnsSubscriptionSearchRequest();
/**
*ONSRegionId是指你需要API访问MQ哪个区域的资源.
*该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setSearch("CID_Mingduan");
try {
OnsSubscriptionSearchResponse response=iAcsClient.getAcsResponse(request);
List<OnsSubscriptionSearchResponse.SubscribeInfoDo> subscribeInfoDoList=response.getData();
for(OnsSubscriptionSearchResponse.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();
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。