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

公告说明

地域化的 TCP 内网接入点比原接入模式的稳定性更高,您须在 2020 年 6 月 30 日前完成切换。超过期限后,原接入点稳定性会更低。

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

公告详情请参见接入点地域化通知

说明 TCP 内网接入点切换适用于开源社区提供的 SDK 以及阿里云推出的 SDK。开源 TCP SDK 接入指南请参见 TCP 协议 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 版控制台。在顶部菜单栏,选择地域,如华东1(杭州)
  2. 在左侧导航栏,单击实例详情
  3. 实例详情页面,单击实例信息页签。
  4. 实例信息页签,找到获取接入点信息信息区域,即可查看到 TCP 协议客户端接入点内网接入点endpoint
  5. 将该接入点配置到您发送端和订阅端代码的相应参数。
    • 阿里云提供的 ons-sdk 对应的参数,以 Java SDK 为例是 NAMESRV_ADDR
      // 设置 TCP 接入域名,进入控制台的实例详情页面,在页面上方选择实例后,在实例信息中的“获取接入点信息”区域查看
      properties.put(PropertyKeyConst.NAMESRV_ADDR,"XXX");
    • 开源社区提供的 rocketmq-sdk 对应的参数,以 Java SDK 为例是 setNamesrvAddr
      * 设置为您从阿里云控制台获取的接入点信息,类似“http://MQ_INST_XXXX.aliyuncs.com:80”
      */
      producer.setNamesrvAddr("YOUR ACCESS POINT");