【公测迁移】经典网络用户迁移

为了提升服务质量和您的体验,云消息队列 Kafka 版商业化后将全部提供专有的商业化实例,不再提供公测版的共享实例。

说明

公测期间所有实例均为共享类型。公测结束后(2019年4月),您需购买实例,可以是VPC或公网/VPC类型。购买后,您将不再与其他用户共享实例。

本文以VPC类型的实例为例。公网接入的更多信息请参见公网和VPC接入

  • 若您目前使用的是经典网络,区别于VPC网络,您需要先创建VPC,然后通过ClassicLink的方式将经典网络与VPC连通,之后无需任何鉴权即可访问VPC中部署的云消息队列 Kafka 版实例。完整的业务迁移方案请参见下文。

  • 若您目前是VPC的用户,请参考【公测迁移】VPC和公网用户迁移迁移业务。

步骤一:创建VPC

  1. 登录VPC控制台

  2. 在顶部菜单栏,选择地域。

    重要

    专有网络的地域必须与您经典网络中需要使用云消息队列 Kafka 版服务的客户端对应的ECS实例所在的地域相同。

  3. 在左侧导航栏,单击专有网络

  4. 专有网络页面,单击创建专有网络

  5. 创建专有网络面板,填写所需的信息,包括专有网络和交换机(vSwitch)的信息,然后单击确定

    说明

    专有网络的目标网段请选择“172.16.0.0/12”。交换机的可用区建议与经典网络中需要使用云消息队列 Kafka 版服务的客户端对应的ECS实例所在的可用区保持一致。

步骤二:建立ClassicLink连接

您需要先登录VPC控制台开启ClassicLink功能,然后到ECS控制台将用于云消息队列 Kafka 版服务的经典网络的ECS实例接入VPC。

  1. 开启ClassicLink。

    1. 登录VPC控制台

    2. 专有网络页面,单击创建的VPC。

    3. 专有网络详情页面,单击开启ClassicLink

    4. 开启ClassicLink对话框,单击确定

  2. 接入VPC。

    1. 登录ECS管理控制台

    2. 在顶部菜单栏,选择地域。

    3. 在左侧导航栏,单击实例与镜像 > 实例

    4. 实例列表页面,选择用于云消息队列 Kafka 版服务的经典网络的ECS实例,然后单击更多 > 网络和安全组 > 连接专有网络

    5. 连接专有网络对话框,选择之前创建的VPC,然后单击确定

    6. 单击前往实例安全组列表添加ClassicLink安全组规则,设置配置规则,然后单击确定

      ClassicLink安全组规则的详细说明,请参见建立ClassicLink连接中的安全组规则配置表。

    7. 在ECS管理控制台的实例列表页面,单击设置图标,

    8. 自定义列表项对话框,选中连接状态,然后单击确定,查看ECS实例的连接状态。

步骤三:购买云消息队列 Kafka 版实例

前往产品购买页,然后根据业务所在地域购买相应的实例。

步骤四:部署云消息队列 Kafka 版实例

  1. 登录云消息队列 Kafka 版控制台

  2. 在顶部菜单栏,选择地域。

  3. 在左侧导航栏,单击概览

  4. 概览页面,找到处于未部署状态的实例,在其右侧操作列,单击部署,然后根据页面提示填写VPC信息。

    完成后,实例会进入部署中状态。实例部署预计需要10分钟~30分钟。

    重要

    获取需要填写的VPC信息的步骤请参见VPC接入

步骤五:创建Topic

消息主题(Topic)是云消息队列 Kafka 版里对消息进行的一级归类,例如可以创建“Topic_Trade”这一主题用来识别交易类消息。 使用云消息队列 Kafka 版的第一步就是先为您的应用创建Topic。

  1. 云消息队列 Kafka 版控制台的左侧导航栏,单击Topic管理

  2. Topic管理页面,选择实例,然后单击创建Topic

  3. 创建Topic页面,输入Topic名称和备注,然后单击创建

说明

Topic不能跨地域使用,需要在应用程序所在的地域(即所部署的ECS的所在地域)进行创建。例如Topic创建在华北2(上海)这个地域,那么消息生产端和消费端也必须运行在华北2(上海)的ECS上。

步骤六:创建Consumer Group

Consumer Group是一类Consumer的标识,这类Consumer通常接收并消费同一类消息,且消费逻辑一致。Consumer Group和Topic的关系是N:N。 同一个Consumer Group可以订阅多个Topic,同一个Topic也可以被多个Consumer Group订阅。

  1. 云消息队列 Kafka 版控制台的左侧导航栏,单击Consumer Group管理

  2. Consumer Group管理页面,选择实例,然后单击创建Consumer Group

  3. 创建Consumer Group页面,填写Consumer Group的名称,然后单击创建

步骤七:查看实例接入点

  1. 云消息队列 Kafka 版控制台的左侧导航栏,单击实例详情

  2. 实例详情页面的基本信息区域,查看实例接入点。

步骤八:执行迁移

云消息队列 Kafka 版提供以下两种迁移方案:

  • 方案一:若您的业务允许丢弃少量未消费的消息数据,那么,您可以直接将生产者和消费者更新为您新部署实例的配置,即可完成迁移。

  • 方案二:若您的业务对消息数据比较敏感,则您需要在保证消息消费完成的情况下,完成业务的平滑迁移。平滑迁移的操作流程如下:

    1. 将生产者更新为新部署实例的配置,则新消息写入新部署实例。

    2. 确保消费者在共享实例上的既存消息已消费完成。

    3. 将消费者更新为新部署实例的配置,开始消费新部署实例上的消息。

如何将旧实例的配置更新为新部署实例的配置请参见以下示例代码:

Java

1. bootstrap.server修改:旧接入点(例如kafka-cn-internet.aliyun.com:8080)=> 新部署实例的接入点(如192.168.0.1:9092,192.168.0.2:9092);

2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";

Go

1. servers修改:旧接入点(例如kafka-cn-internet.aliyun.com:8080)=> 新集群的接入点(例如192.168.0.1:9092,192.168.0.2:9092)

2. clusterCfg.Net.SASL.Enable修改:true => false

3. clusterCfg.Net.TLS.Enable修改:true => false

Python

1. bootstrap.server修改:旧接入点(例如kafka-cn-internet.aliyun.com:8080)=> 新部署实例的接入点(如192.168.0.1:9092,192.168.0.2:9092);

2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";

Node.js

1. bootstrap.server修改:旧接入点(例如kafka-cn-internet.aliyun.com:8080)=> 新部署实例的接入点(如192.168.0.1:9092,192.168.0.2:9092);

2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";

步骤九:确认迁移是否成功

如果生产者能成功发送且消费者能成功消费消息,则说明迁移成功。

  1. 确认生产者是否能成功发送消息。

    1. 云消息队列 Kafka 版控制台左侧导航栏,单击Topic管理

    2. Topic管理页面,找到发送消息的Topic,在其右侧操作列,单击分区状态

      分区状态对话框,如果能看到最近更新时间有更新,则代表生产者已成功发送消息。

  2. 确认消费者是否能成功消费消息

    1. 云消息队列 Kafka 版控制台左侧导航栏,单击Consumer Group管理

    2. Consumer Group管理,找到消费消息的Consumer Group,在其右侧操作列,单击消费状态

      消费状态对话框,如果能看到最近消费时间有更新,则代表消费者已成功消费消息。