为了保证服务质量和用户体验,云消息队列 Kafka 版商业化后将提供用户专有的商业化实例,不再提供公测版的共享实例服务。
公测期间所有实例均为共享类型,供所有用户使用。公测结束后(2019年4月上旬结束公测),您需购买您的实例,可以是VPC或公网类型。购买后,您将不再与其他用户共享实例。
本文以VPC网络类型的实例为例。公网接入的更多信息请参见公网+VPC接入。
- 若您已经是VPC的用户,请按照以下步骤将现有业务迁移到云消息队列 Kafka 版商用实例上。
- 若您目前是经典网络的用户,请参见【公测迁移】经典网络用户迁移迁移业务。
步骤一:购买云消息队列 Kafka 版实例
前往产品购买页,请根据业务所在地域购买相应的实例。
步骤二:部署云消息队列 Kafka 版实例
登录云消息队列 Kafka 版控制台,在概览页查看已购买的实例。
选择处于未部署状态的实例,单击部署按钮,然后根据页面提示填写VPC信息。
完成后,实例会进入部署中状态。实例部署预计需要10分钟 ~ 30分钟。
重要 获取需要填写的VPC信息的步骤请参见VPC接入。刷新控制台页面。若实例状态显示服务中,即表示已部署成功。
步骤三:创建Topic
消息主题(Topic)是云消息队列 Kafka 版里对消息的一级归类,例如可以创建“Topic_Trade”这一主题用来识别交易类消息。 使用云消息队列 Kafka 版的第一步就是先为您的应用创建Topic。
请按照以下步骤创建Topic:
在云消息队列 Kafka 版控制台的左侧导航栏中,单击Topic管理。
在Topic管理页面的上方选择相应的地域,例如华北2(上海),然后单击创建Topic按钮。
在创建Topic页面,输入Topic名称和备注并选择已部署的新实例,然后单击确认。
完成后,您创建的Topic将出现在Topic管理页面的列表中。
步骤四:创建Consumer Group
Consumer Group是一类Consumer的标识,这类Consumer通常接收并消费同一类消息,且消费逻辑一致。Consumer Group和Topic的关系是N:N。 同一个Consumer Group可以订阅多个Topic,同一个Topic也可以被多个Consumer Group订阅。
创建完Topic后,请按以下步骤创建Consumer Group:
在云消息队列 Kafka 版控制台的左侧导航栏中,单击Consumer Group管理。
在Consumer Group管理页面的上方选择相应的地域,例如华北2(上海),单击创建Consumer Group按钮。
在创建Consumer Group页面,填写Consumer Group的名称,单击创建。
完成后,您创建的Consumer Group将出现在Consumer Group管理页面的列表中。
步骤五:获取实例接入点
实例的接入点是您在使用SDK接入云消息队列 Kafka 版时需要配置的一个配置项。如果您选择迁移到您新部署的实例,则需获取您新部署的实例的接入点。
同一个实例的接入点一致,因此可任意选择该实例的资源(Topic或Consumer Group)获取接入点。
请按以下步骤获取您新部署的实例的接入点:
进入控制台的Topic管理或Consumer Group管理页面。
单击Topic或Consumer Group 操作列中的获取接入点。
在接入点页面,单击复制。
步骤六:执行迁移
云消息队列 Kafka 版提供以下两种迁移方案:
- 方案一:若您的业务允许丢弃少量未消费的消息数据,那么,您可以直接将生产者和消费者更新为您新部署实例的配置,即可完成迁移。
- 方案二:若您的业务对消息数据比较敏感,那么,您需要在保证消息消费完成的情况下,完成业务的平滑迁移。
方案二的平滑迁移步骤如下:
将生产者更新为新部署实例的配置,则新消息写入新部署实例。
确保消费者在共享实例上的既存消息已消费完成。
将消费者更新为新部署实例的配置,开始消费新部署实例上的消息。
请按照以下示例代码修改配置文件kafka.properties
,以更新至新部署的实例相关配置:
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";
步骤七:验证迁移是否成功
如果生产者能成功发送且消费者能成功消费消息,则说明迁移成功。
验证生产者是否能成功发送消息:
- 在云消息队列 Kafka 版控制台左侧导航栏单击Topic管理。
- 在Topic的操作列单击分区状态。
若能看到最近更新时间有更新,则代表生产者已成功发送消息。
验证消费者是否能成功消费消息:
- 在云消息队列 Kafka 版控制台左侧导航栏单击Consumer Group管理。
- 在Consumer Group的操作列单击消费状态。
若能看到最近消费时间有更新,则代表消费者已成功消费消息。