Skip to main content

概述

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

迁移场景

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

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

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

迁移工具

AutoMQ 推荐使用 MirrorMaker2 工具实现集群间迁移,支持从 Apache Kafka 或者其他 Kafka 发行版迁移至 AutoMQ。

MirrorMaker2 迁移工具具备如下能力:

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

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

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

MirrorMaker2 的技术架构如下:

核心概念

MirrorMaker2 定义了若干 Connector ,实现了 2 个 Apache Kafka 集群之间的数据同步任务,其中包含了同步所需的配置以及实时运行状态。

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

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

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

部署 MirrorMaker2

关于 MirrorMaker2 的安装部署,参考 Apache Kafka 社区的相关链接:

约束和限制

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

消息少量重复

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

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

消费少量乱序

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

后续步骤

了解集群迁移的背景之后,建议根据当前集群的情况选择对应方案处理: