本文介绍通过方案一将开源 Kafka 集群迁移到火山引擎消息队列 Kafka版的操作步骤。
迁移之前,您需要根据业务量合理评估资源需求,并创建 Kafka 实例及相关的依赖资源。
根据现有业务量和消息量估算所需的消息队列 Kafka版资源,例如业务读写流量峰值、磁盘容量和分区数等。不同规格的 Kafka 实例代表不同的计算能力及存储空间,请根据业务量合理评估资源需求。
确认资源需求之后,还需要准备相关资源,例如私有网络和子网、ECS 云服务器和 Kafka 实例。
迁移元数据的步骤主要是在新的 Kafka 实例中创建与原 Kafka 集群相同的 Topic 和 Group 配置,包括 Topic 名称、分区数、副本数、消息保留时长等参数配置等。关于 Group 配置迁移,您可以根据需求选择在控制台创建 Group 或在使用 SDK 的过程中按需创建 Group。
在原 Kafka 集群中收集 Topic 和 Group 的基本信息。
其中,核心配置如下:
配置 | 说明 |
---|---|
Topic 名称 | Topic 的名称。 |
Topic 分区数 | 此 Topic 的分区数量。分区数量越大,消费的并发度越大。 |
分区副本数 | 分区的副本个数,用于保障分区的高可用。当其中一个 Broker 故障时仍可保障数据可用性,副本数越大可靠性越高。 |
Group ID | Group 的 ID,即生产和消费时指定的消费组 Group ID。 |
在火山引擎消息队列 Kafka版控制台中创建同样数量和配置的 Topic。
您可以根据业务需要选择手动创建 Topic 或通过配置文件批量创建 Topic。操作步骤请参考 创建 Topic 或 批量导入 Topic 。
说明
Topic 名称和分区数等核心配置需要和原 Kafka 集群的 Topic 配置相同,消息保留时长等参数可以根据业务需求自行配置。
创建同样数量和配置的 Group。
消息队列 Kafka版通过自由使用 Group 功能控制 Kafka 实例支持的 Group 创建方式,该功能默认为开启状态。您可以根据需求选择是否开启自由使用 Group 功能,并且创建和迁移源端同样数量和 ID 的 Group。
业务迁移的方案一先启动新的消费端和生产端,让新集群的生产和消费正常运行。再下线旧的生产端,待旧集群的消息被旧 Consumer 消费完成后,再关闭旧消费端,完成迁移上云。该方案可以保障业务的可用性,业务迁移更加平滑,适用于对业务连续性和可用性要求较高的业务场景。但是该方案中,云上和云下双集群同步处理消息消费,无法保证消费的有序性。
迁移步骤如下: