概述
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 在源和目标集群之间同步消息,该机制无法保证源集群和目标集群数据完全一致。因此使用迁移工具需要注意如下约束和限制:
消息少量重复
消费进度数据为异步、间歇性同步,切换消费者时可能会有位点回退导致重复消费。
消息同步为异步操作,因机器异常、故障恢复,可能会重复复制部分数据。
消费少量乱序
切换消费者时如果产生位点回退,则会重复消费少量消息,这部分消息会导致乱序。
后续步骤
了解集群迁移的背景之后,建议根据当前集群的情况选择对应方案处理:
- 从 Apache kafka 迁移到 AutoMQ: 参考迁移方案,分批次按步骤实施迁移。从 Apache Kafka 迁移到 AutoMQ▸