开发者社区> 问答> 正文

如何创建发布信息

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

描述

OnsPublishCreate 接口用于向 MQ 申请注册发布关系,并得到生成的 PID,用于生产环境发消息。

使用场景

新申请 MQ 资源,在创建 Topic 之后,需要注册对应的发布关系 (PID) 来发消息,调用 OnsPublishCreate 接口即可实现。

注意:每个 Topic 只需要一个 PID 即可,不需要创建多个 PID,因为PID可以在多个应用中复用。

请求参数

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

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
相关 API

OnsPublishDelete:删除发布关系
OnsPublishList:获取发布关系列表
OnsPublishGet:查询发布关系
使用示例

本示例从华东1接入点接入,创建一个名为 PID_Mingduan 的发布关系到公测 Region,该发布关系表明用于发送 Topic 为 MingduanTestAPI 的消息。

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);
          OnsPublishCreateRequest request = new OnsPublishCreateRequest();
            /**
            *ONSRegionId是指你需要API访问MQ哪个区域的资源
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
          request.setOnsRegionId("publictest");
          request.setPreventCache(System.currentTimeMillis());
          request.setAcceptFormat(FormatType.JSON);
          request.setTopic("MingduanTestAPI");
          request.setProducerId("PID_Mingduan");
          try {
              OnsPublishCreateResponse response=iAcsClient.getAcsResponse(request);
              System.out.println(response.getRequestId());
          } catch (ServerException e) {
              e.printStackTrace();
          } catch (ClientException e) {
              e.printStackTrace();
          }
      }
返回结果

CC815D34-0950-43BF-A4E8-4187C3C7BF19

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

相关电子书

更多
JCLI使用说明文档 立即下载
如何创建一个成功的(在业务和开发中)开源项目 立即下载
DataWorks高级功能场景化案例分享 立即下载