本文介绍将自建Kafka集群迁移到云消息队列 Kafka 版实例的优势、原理、方案架构、迁移工具和操作流程。

迁移优势

将自建Kafka集群迁移到云消息队列 Kafka 版实例的优势,请参见产品优势

迁移原理

对于消息队列来说,如果要实现集群迁移,只需消费完旧集群的消息即可。由于Producer和Consumer都是集群化的,您可以通过一台一台机器操作的方式实现上层业务无感知。

迁移方式

迁移说明

  • 迁移不会删除自建的源Kafka集群的Topic和Group,只是在目标云消息队列 Kafka 版实例中创建相同配置的Topic和Group。
  • 迁移内容仅为Topic和Group 配置,不包含Topic中存储的消息以及Group的订阅关系和消费位点信息。
  • 迁移实例时,您可以使用控制台上的迁移路由功能进行迁移,也可借助工具实施迁移。一般情况下,推荐您使用迁移路由功能进行迁移,当自建Kafka集群无公网访问点时,可借助工具迁移。

方案架构

迁移自建Kafka集群至云消息队列 Kafka 版实例方案如下图所示。

迁移前后

方案说明如下:

迁移路由

  1. 获取源实例的公网访问连接点。
  2. 在控制台上创建实例迁移任务。
  3. 为实例开启新的Group,准备消费实例的消息。
  4. 为实例开启新的Producer,下线旧的Producer,并使旧的Group继续消费自建Kafka集群的消息。
  5. 待自建Kafka集群的消息全部被旧的Group消费后,下线旧的Group和自建Kafka集群。

借助工具迁移

  1. 使用迁移工具迁移自建Kafka集群至实例。
  2. 为实例开启新的Group,准备消费实例的消息。
  3. 为实例开启新的Producer,下线旧的Producer,并使旧的Group继续消费自建Kafka集群的消息。
  4. 待自建Kafka集群的消息全部被旧的Group消费后,下线旧的Group和自建Kafka集群。

迁移路由

云消息队列 Kafka 版提供全托管、免运维的实例迁移服务,用于自建实例与云消息队列 Kafka 版实例之间或者云消息队列 Kafka 版实例之间的数据同步,无需借助工具即可在控制台上实现实例迁移,迁移完成后目标集群的元数据与源集群的元数据保持一致并且持续更新。具体步骤,请参见迁移路由

借助工具迁移

迁移工具

迁移工具说明参考文档
kafka-migration-assessment.jar
  • 您可以使用该工具将自建Kafka集群元数据通过控制台任务导出为JSON格式文件,然后上传该文件至云消息队列 Kafka 版迁移任务并运行任务,实现元数据迁移。
  • 您可以使用该迁移工具将自建Kafka集群的Topic和Group迁移到云消息队列 Kafka 版实例。
MirrorMaker您可以使用该工具将源自建Kafka集群中的数据镜像拷贝到目标云消息队列 Kafka 版集群。迁移数据上云

迁移操作流程

迁移流程
流程说明如下:
  1. 可选:评估规格:如果您已了解待迁移自建Kafka集群的信息,如集群流量情况、磁盘容量和类型、分区数量等信息,您可以直接评估需要购买的云消息队列 Kafka 版实例规格。

    如果您不清楚自建Kafka集群的相关信息,您无需执行该操作,在迁移自建Kafka集群元数据至新实例时,使用迁移工具进行自动评估。

  2. 实施迁移:您可以通过执行命令实现单资源迁移,也可以通过迁移任务实现迁移。
    • 迁移自建Kafka集群至新实例:在云消息队列 Kafka 版控制台,创建迁移任务,根据推荐意见购买云消息队列 Kafka 版实例并部署启动任务。
      说明 如果元数据文件中包含了自建Kafka集群的流量、磁盘、配置等信息,购买实例时,云消息队列 Kafka 版会根据元数据文件信息,自动评估并推荐实例规格,您可以根据推荐意见购买实例。
    • 迁移自建Kafka集群元数据至已有实例:在云消息队列 Kafka 版控制台,通过创建迁移任务,将自建Kafka集群元数据迁移至云消息队列 Kafka 版已有实例。
    • 单资源迁移:如果您只需要迁移Topic、Group或消息数据,您可以选择对应资源迁移方法迁移。
      1. 迁移Topic上云:迁移自建Kafka集群的Topic到云消息队列 Kafka 版实例。
      2. 迁移Group上云:迁移自建Kafka集群的Group云消息队列 Kafka 版实例。
      3. (可选)迁移数据上云:迁移自建Kafka集群的数据到云消息队列 Kafka 版实例。
        重要 消息队列的特点是,数据一旦被消费,则已经完成使命。因此,除了需要将自建Kafka集群的数据备份云消息队列 Kafka 版实例的情况外,一般情况下不推荐您迁移数据。
  3. 查看迁移进度:查看自建Kafka集群迁移到云消息队列 Kafka 版的进度。
  4. 验证迁移结果:查看迁移成功后的资源列表。