为了进一步提升云消息队列 RocketMQ 版服务的稳定性,并以此保障您应用的稳定性,针对部署在某地域(Region)的应用,如果您使用的是TCP协议下的SDK,则需使用该地域的云消息队列 RocketMQ 版服务的TCP内网接入点。本文提供对应地域的TCP内网接入点的详细说明和配置步骤。

公告首次发布时间

2019年12月16日

公告说明

地域化的TCP内网接入点比原接入模式的稳定性更高,您需在2023年06月30日前完成切换。超过期限后,原接入点将无法提供消息收发服务。

切换TCP内网接入点的影响如下:
  • 如果应用本身没有跨地域使用云消息队列 RocketMQ 版,发送方和订阅方变更可以不同步。
  • 如果应用有跨地域使用云消息队列 RocketMQ 版,则需要根据业务评估切换的时机。您可使用HTTP协议客户端的接入点满足您跨地域使用云消息队列 RocketMQ 版的需求。HTTP SDK的详细信息,请参见HTTP协议客户端接入说明
说明 TCP内网接入点切换适用于开源社区提供的SDK以及阿里云推出的SDK。

判断是否需要切换

请判断您目前使用的云消息队列 RocketMQ 版实例的TCP内网接入点是否包含地域ID,格式为http://xxxx.<region_id>.mq-internal.aliyuncs.com:<port>
  • 如果您使用的接入点包含地域ID,例如http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080,那么您无需做任何接入点配置修改。
  • 如果您所使用的接入点没有包含地域ID,例如http://xxxx.mq-internal.aliyuncs.com:8080,请按本文提供的操作步骤,重新配置您的SDK中使用的接入点信息。

背景信息

如需使用云消息队列 RocketMQ 版来收发消息,则需在使用TCP协议下的SDK时,将相应参数配置为您实际使用的资源信息。需特别注意的是,以下参数所对应的资源应处于同一地域:

  • GROUP_ID:您在云消息队列 RocketMQ 版控制台上创建的Group ID。
  • Topic:您在云消息队列 RocketMQ 版控制台上创建的Topic。
  • NAMESRV_ADDR:您从云消息队列 RocketMQ 版控制台的实例详情页面获取的接入点。
例如您在华东1(杭州)地域购买了一个云消息队列 RocketMQ 版实例A,并在此地域下创建了Topic A和Group ID A,供部署在该地域的应用客户端A使用;同时,您也在另一个地域,如华南1(深圳)购买了另一个云消息队列 RocketMQ 版实例B,并在此地域下创建了Topic B和Group ID B,供部署在该地域的应用客户端B使用。需特别注意的信息如下:
  • 针对Topic A,您只能通过在华东1(杭州)地域的、归属于Group ID A的客户端A向Topic A发送或接收消息。
  • 针对Topic B,您只能通过在华南1(深圳)地域的、归属于Group ID B的客户端B向Topic B发送或接收消息。
具体对应关系如下图所示。接入点设置

操作步骤

  1. 登录云消息队列 RocketMQ 版控制台
  2. 在左侧导航栏,单击实例列表
  3. 在顶部菜单栏,选择地域,如华东1(杭州),然后单击目标实例。
  4. 实例详情页面,单击接入点页签。
  5. 接入点页签,找到TCP 协议客户端接入点,即可查看网络内网访问的接入点。endpoint
  6. 将该接入点配置到您发送端和订阅端代码的相应参数。
    • 阿里云提供的ons-sdk需满足以下条件:

      对应的参数,以Java SDK为例:

      // 请确保您的客户端版本满足替换接入点的要求,并将以下配置
      properties.put(PropertyKeyConst.ONSAddr, "http://xxxx.mq-internal.aliyuncs.com:8080");          
      // 替换为
      properties.put(PropertyKeyConst.NAMESRV_ADDR, "http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080");
    • 开源社区提供的rocketmq-sdk对应的参数,以Java SDK为例:
      // 请将setNamesrvAddr设置为您从阿里云控制台获取的接入点信息。
      producer.setNamesrvAddr("http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080");