为了进一步提升消息队列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");