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

迁移优势

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

迁移原理

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

迁移说明

  • 迁移不会删除自建的源Kafka集群的Topic和Group,只是在目标消息队列Kafka版实例中创建相同配置的Topic和Group。
  • 迁移内容仅为Topic和Group 配置,不包含Topic中存储的消息以及Group的订阅关系和消费位点信息。

方案架构

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

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

迁移工具

迁移工具 说明 参考文档
kafka-migration-assessment.jar.zip
  • 您可以使用该工具将自建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. 验证迁移结果:查看迁移成功后的资源列表。