> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 概述

> AutoMQ 提供无缝迁移工具，从 Apache Kafka 和其他发行版迁移至 AutoMQ Cloud，具备弹性伸缩和实时同步能力。

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

## 迁移场景

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

<table>
  <thead>
    <tr>
      <th colspan="1" rowspan="1">
        <strong>源集群</strong>

        <br />
      </th>

      <th colspan="1" rowspan="1">
        <strong>目标集群</strong>

        <br />
      </th>

      <th colspan="1" rowspan="1">
        <strong>迁移支持</strong>

        <br />
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td colspan="1" rowspan="1">
        Apache Kafka

        <br />
      </td>

      <td colspan="1" rowspan="5">
        AutoMQ

        <br />
      </td>

      <td colspan="1" rowspan="1">
        支持

        <br />

        <Tip>
          <br />

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

          <br />
        </Tip>

        <br />
      </td>
    </tr>

    <tr>
      <td colspan="1" rowspan="1">
        AWS MSK

        <br />
      </td>

      <td colspan="1" rowspan="1">
        支持

        <br />

        <Tip>
          <br />

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

          <br />
        </Tip>

        <br />
      </td>
    </tr>

    <tr>
      <td colspan="1" rowspan="1">
        Confluent Platform

        <br />
      </td>

      <td colspan="1" rowspan="1">
        支持

        <br />
      </td>
    </tr>

    <tr>
      <td colspan="1" rowspan="1">
        阿里云消息队列 Kafka 版

        <br />
      </td>

      <td colspan="1" rowspan="1">
        支持

        <br />
      </td>
    </tr>

    <tr>
      <td colspan="1" rowspan="1">
        腾讯云 CKafka 版

        <br />
      </td>

      <td colspan="1" rowspan="1">
        支持

        <br />
      </td>
    </tr>
  </tbody>
</table>

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

## 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

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 复制链路

<img alt="Kafka Linking 的数据同步链路可以做到如下效果：" src="https://mintcdn.com/automq/EbkNUKzEtdG96TOk/zh/automq-cloud/migrate-to-automq/overview/1.webp?fit=max&auto=format&n=EbkNUKzEtdG96TOk&q=85&s=2fe8276ecd585a1b7c27ec8a9c13371d" width="2560" height="944" data-path="zh/automq-cloud/migrate-to-automq/overview/1.webp" />

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

* Topic 分区数完全一致。

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

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

### Producer 代理链路

<img alt="Kafka Linking 提供的 Producer 代理链路具备如下能力：" src="https://mintcdn.com/automq/EbkNUKzEtdG96TOk/zh/automq-cloud/migrate-to-automq/overview/2.webp?fit=max&auto=format&n=EbkNUKzEtdG96TOk&q=85&s=e03ac2550a566df2a3ed1357350d810d" width="2560" height="984" data-path="zh/automq-cloud/migrate-to-automq/overview/2.webp" />

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

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

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

## 后续步骤

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

* **前置条件梳理：** 梳理需要迁移的源集群特征和业务关系，规划迁移批次和前置资源检查。[前置条件梳理▸](/zh/automq-cloud/migrate-to-automq/prerequisites)

* **实施迁移方案：** 在完成前置条件梳理后，按照迁移方案方案分步骤实施。[实施迁移方案▸](/zh/automq-cloud/migrate-to-automq/executing-migration)
