开发者社区> 问答> 正文

如何创建 Topic

本接口限企业铂金版客户专用,请前往铂金版购买页面查看详情。

描述

Topic 创建接口一般是在有新的 Topic 需求的情况下调用,例如发布新应用,业务逻辑需要新的 Topic。

Topic 为全局唯一,不可重复创建,否则会创建失败,需要根据错误码进行处理。

请求参数

名称    类型    是否必须    描述
OnsRegionId    String    是    当前查询 MQ 所在区域,详情请参考公共术语说明
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
Topic    String    是    需要创建的 Topic 名称,Topic 名称全局唯一,不可重复
Qps    Long    否    设置该 Topic 的 QPS 估计
Status    Integer    否    Topic 申请的状态,(0 服务中 1 冻结 2 暂停)
Remark    String    否    备注,可以不填
Appkey    String    否    应用的 Key,公共云不填,聚石塔用户需要设置
AppName    String    否    应用名,公共云不填
返回参数

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二,用于排查定位问题
HelpUrl    String    帮助链接
相关 API

OnsTopicDelete:删除 Topic
OnsTopicList:查看 Topic 列表
OnsPublishCreate:在创建 Topic 之后一般需要创建发布关系
OnsSubscribeCreate:在创建 Topic 之后一般需要创建订阅关系
使用示例

本示例仅仅提供一个参考,从华东1接入点接入,创建名为“XXX”的 Topic,创建到 daily 区域。

    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);
        OnsTopicCreateRequest request = new OnsTopicCreateRequest();
        request.setAcceptFormat(FormatType.JSON);
        request.setTopic("XXXXXXXX");
        request.setQps(1000l);
        request.setRemark("test");
        request.setStatus(0);
            /**
            *ONSRegionId是指需要API访问MQ哪个区域的资源
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
        request.setOnsRegionId("daily");
        request.setPreventCache(System.currentTimeMillis());
        try {
            OnsTopicCreateResponse response = client.getAcsResponse(request);
            System.out.println(response.getRequestId());
        }
        catch (ServerException e) {
            e.printStackTrace();
        }
        catch (ClientException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

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

相关电子书

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