为了进一步提升云消息队列 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发送或接收消息。
具体对应关系如下图所示。
操作步骤
- 登录云消息队列 RocketMQ 版控制台。
- 在左侧导航栏,单击实例列表。
- 在顶部菜单栏,选择地域,如华东1(杭州),然后单击目标实例。
- 在实例详情页面,单击接入点页签。
- 在接入点页签,找到TCP 协议客户端接入点,即可查看网络为内网访问的接入点。
- 将该接入点配置到您发送端和订阅端代码的相应参数。
- 阿里云提供的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");
- 阿里云提供的ons-sdk需满足以下条件: