开发者社区 问答 正文

如何删除 Topic

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

描述

OnsTopicDelete 接口用于删除账号下的指定 Topic。

Topic 删除接口一般是资源回收时使用,例如应用下线。Topic 删除时 MQ 后台需要做资源回收,速度较慢,因此不建议删除后立即又重新创建。如果删除失败,请根据错误码进行处理。

注意:删除 Topic 将导致该 Topic 下所有的发布订阅关系同时被清理,请慎重调用。

请求参数

名称    类型    是否必须    描述
OnsRegionId    String    是    当前查询 MQ 所在区域,可以通过 ONSRegionList 方法获取,请参考公共术语说明
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
Topic    String    是    指定删除的 Topic
返回参数

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

OnsTopicCreate:创建 Topic
OnsTopicList:查看 Topic 列表
OnsPublishDelete:删除发布关系
OnsSubscribeDelete:删除订阅关系
使用示例

本示例仅仅提供一个参考,从华东1接入点接入,删除名为”Mingduan_67dd”的 Topic。

调用示例

   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);
        OnsTopicDeleteRequest request =new OnsTopicDeleteRequest();
        request.setCluster("taobaodaily");
        request.setPreventCache(System.currentTimeMillis());
            /**
            *ONSRegionId是指设置API访问MQ特点的区域
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
        request.setOnsRegionId("daily");
        request.setTopic("Mingduan_67dd");
        try {
            OnsTopicDeleteResponse 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:35 2215 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: