Skip to main content

概述

AutoMQ 是基于云原生理念重新设计的新一代 Kafka 发行版,与 Apache Kafka 兼容。本文将详细介绍如何从 Apache Kafka 或者其他 Kafka 发行版迁移到 AutoMQ。

迁移场景

AutoMQ 兼容 Apache Kafka,支持无缝迁移其他厂商提供的 Kafka 发行版,相关信息列举如下:

源集群
目标集群
迁移支持
Apache Kafka
AutoMQ Cloud
支持
AWS MSK
AutoMQ Cloud
支持
Confluent Platform
AutoMQ Cloud
支持
阿里云消息队列 Kafka 版
AutoMQ Cloud
支持
腾讯云 CKafka 版
AutoMQ Cloud
支持

如果当前使用的 Kafka 发行版不在上述列表中,请立即联系我们以获取支持和帮助。

迁移工具

AutoMQ Cloud 基于 Kafka MirrorMaker2 为用户提供了开箱即用的 Kafka 迁移工具,支持从 Apache Kafka 或者其他 Kafka 发行版迁移至 AutoMQ。

AutoMQ Cloud 迁移工具具备如下能力:

  • 自适应弹性伸缩: AutoMQ Cloud 基于云厂商弹性伸缩组服务管理迁移组件容量,可以根据同步数据的吞吐压力自动伸缩,确保尽快完成迁移,无需用户手工配置并发度和节点数量。

  • 支持分批次迁移集群: AutoMQ Cloud 支持源集群到目标集群内分批次迁移 Topic 和 Group,实现灰度和验证。

  • 支持同步消费进度: AutoMQ Cloud 迁移工具支持实时同步源集群消费进度,因此消费者可在迁移后从目标集群继续消费。

  • 支持同步Topic、Group的动态更新: AutoMQ Cloud 迁移工具支持实时监测Topic、Group 的动态更新,因此无需担心迁移过程中有遗漏。

AutoMQ Cloud 迁移工具的技术架构如下:

核心概念

迁移任务定义了从一个外部 Apache Kafka 集群(或其他 Kafka 发行版实例)到一个 AutoMQ 实例的一组 Topic 的数据同步任务,其中包含了同步所需的配置以及实时运行状态。

迁移工具底层基于 Kafka MirrorMaker2 工具实现。每个迁移任务等同于 MirrorMaker2 定义的一组 Connector:

  • MirrorSourceConnector :用于同步源集群的消息数据。

  • MirrorCheckpointConnector :用于同步源集群 ConsumerGroup 的消费进度数据。

  • MirrorHeartbeatConnector :用于系统检测同步链路的运行状态。

每个迁移任务的 Connector 是独立分配资源运行,彼此间相互隔离,系统会根据同步数据的规模和压力动态扩缩每个迁移任务底层的 Worker 数量。

AutoMQ 迁移工具免费使用 ,但运行每个迁移任务都会独立分配虚拟机资源并产生云资源费用

建议合理划分迁移任务的批次和数量,并在完成迁移后尽快删除迁移任务,以免持续产生云资源费用。

每个迁移任务从创建到删除,伴随如下状态切换过程:

  • 创建中: 初始迁移任务的操作是一个异步过程,创建操作完成时后台会异步部署 MirrorMaker2 组件,该过程中用户不可操作任何变更,直到创建完成。

  • 运行中: 当前迁移任务处于有效运行状态,正在同步数据中。

  • 变更中: 当前迁移任务执行配置变更、状态变更等操作,由于执行过程是异步的,隐藏需要等待完成,在此期间禁止任何操作变更。

  • 服务异常: 当前迁移任务因执行创建、运维变更或者底层基础设施异常导致的无法正常提供服务。

  • 暂停: 当前迁移任务被用户暂时停止,保留配置但不同步数据。一般用于迁移过程中的检查过程。

  • 删除中: 当迁移任务完成数据的同步,应用系统已经完成集群切换。此时操作删除任务,删除是一个异步过程,底层会逐步释放资源。

  • 已删除: 迁移任务已经完成删除过程,已经释放了所有的资源和配置。

约束和限制

MirrorMaker2 是使用 Connector 在源和目标集群之间同步消息,该机制无法保证源集群和目标集群数据完全一致。因此使用迁移工具需要注意如下约束和限制:

消息少量重复

消费进度数据为异步、间歇性同步,切换消费者时可能会有位点回退导致重复消费。

消息同步为异步操作,因机器异常、故障恢复,可能会重复复制部分数据。

消费少量乱序

切换消费者时如果产生位点回退,则会重复消费少量消息,这部分消息会导致乱序。

后续步骤

了解 AutoMQ 迁移工具的运行背景、功能之后,建议按如下顺序处理:

  • 前置条件梳理: 梳理需要迁移的源集群特征和业务关系,规划迁移批次和前置资源检查。前置条件梳理▸

  • 实施迁移方案: 在完成前置条件梳理后,按照迁移方案方案分步骤实施。实施迁移方案▸