Skip to main content

概述

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

迁移场景

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

源集群
目标集群
迁移支持

Apache Kafka


AutoMQ


支持


tip

Kafka Linking 兼容 Apache Kafka 版本>= 0.11。



AWS MSK


支持


tip

Kafka Linking 暂不支持 MSK IAM Role 鉴权模式,仅支持原生的 ACL 鉴权模式。



Confluent Platform


支持


阿里云消息队列 Kafka 版


支持


腾讯云 CKafka 版


支持


tip

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

Kafka Linking 概述

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

Kafka Linking 迁移工具,具备如下优势:

  • 不停机迁移 :区别于 MirrorMaker2 需要客户端停机切换,Kafka Linking 内置流量代理组件,确保 Producer 切换接入点过程无需停机。

  • Byte to Byte 复制: 区别于 MirrorMaker2 复制后的消息位点发生变化,Kafka Linking 支持 Byte to Byte 复制 ,源集群的所有分区的数据复制到新集群可以保证 Offset 信息不变,可以确保 Flink Job 等自持位点的计算引擎可以无缝切换。

  • 同步消费进度保持: Kafka Linking 支持同步源集群消费进度,因此消费者可在迁移后从目标集群继续消费,位点信息完全一致。

  • 按需弹性伸缩: Kafka Linking 无需单独部署,随 AutoMQ 集群按需扩展,减少了迁移期间的运维复杂度。

  • Kafka 兼容性高: Kafka Linking 支持历史大部分版本的 Apache Kafka (版本>=0.11)以及其他商业发行版,现有方案可以无缝切换到 AutoMQ。

Kafka Linking 术语概念

Kafka Linking 定义了一系列术语,列举如下:

Kafka Link 是从一个外部 Apache Kafka 集群到一个 AutoMQ Kafka 实例的一组 Topic 的数据同步和代理任务,包含数据同步所需的配置和实时运行状态以及流量代理的控制。

Source Cluster

Source Cluster 是 Kafka Linking 中定义迁移源集群的抽象配置,Source Cluster 是由 AutoMQ 控制台提供的 Kafka 集成进行描述,包含源集群的接入点、ACL 规则、别名等配置信息。

Sink Cluster

Sink Cluster 是 Kafka Linking 中定义迁移目标集群的抽象配置, Sink Cluster 特指 AutoMQ 实例(当前 Kafka Linking 仅支持将 AutoMQ 实例作为 Sink Cluster),包含目标集群的接入点、ACL 规则、别名等配置信息。

Mirror Topic

Mirror Topic 是 Kafka Linking 用于将源集群的 Topic 同步和迁移到目标集群的基本单元。每个 Mirror Topic 对应源集群中的一个特定 Topic,并在目标集群中作为该 Topic 的唯一表示。

Source Topic

Source Topic 是 Kafka Linking 对源集群的Topic 的表达。在每个 Kafka Link 中 Source Topic 和 Mirror Topic 一一对应。

Consumer Group

Kafka Linking 支持从源集群 Consumer Group 复制消费进度信息,并同步到目标集群。用户可指定 Source Cluster 的 Consumer Group 并配置到 Sink Cluster 的某一 Consumer Group。

Kafka Linking 架构

区别于 MirrorMaker2 基于 Connector 实现数据同步,Kafka Linking 迁移工具重新构建了两条链路,分别是 Byte to Byte 的数据复制链路以及 Producer 代理链路:

  • Byte to Byte 复制链路: 用于将 Source Cluster 的数据同步到 Sink Cluster,确保数据不丢、位点完全一致。

  • Producer 代理链路 :传统的 MirrorMaker2 切换 Producer 时,为了防止两端的集群同时写入造成数据错乱,要求 Producer 必须全部停机后才能切换到目标集群。AutoMQ Kafka Linking 提供了 Producer 代理链路,支持切流期间流量代理回源集群,并支持后续统一切流,实现了不停机切换。

Byte to Byte 复制链路

Kafka Linking 的数据同步链路可以做到如下效果:

Kafka Linking 的数据同步链路可以做到如下效果:

  • Topic 分区数完全一致。

  • 消息全量同步,位点和源集群完全一致。

  • 消费位点同步,源集群特定 Consumer Group 针对特定分区的消费位点完全同步到目标集群,保持一致。

Producer 代理链路

Kafka Linking 提供的 Producer 代理链路具备如下能力:

Kafka Linking 提供的 Producer 代理链路具备如下能力:

  • 支持 Producer 滚动切换接入点迁移,切换期间无需停机,写入不受损。

  • 支持迁移期间源集群正常读写,不受影响,应用可按需切换。

后续步骤

了解 Kafka Linking 的运行背景、功能之后,建议按如下顺序处理:

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

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