使用将本地 Apache Kafka 集群迁移到亚马逊 MSK MirrorMaker - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用将本地 Apache Kafka 集群迁移到亚马逊 MSK MirrorMaker

由 Han Zhang (AWS) 和 Tanner Pratt () 创作 AWS

环境:PoC 或试点

源:本地或自行管理 Apache Kafka 集群

目标:适用于 Apache Kafka 的亚马逊托管流媒体 Kafka(亚马逊)MSK

R 类型:更换平台

工作负载:开源;所有其他工作负载

技术:分析、大数据、迁移

AWS服务:亚马逊 MSK

Summary

此模式为将本地、自我管理或托管的 Apache Kafka 集群迁移到适用于 Apache Kafka 的亚马逊托管流媒体(亚马逊)提供了指导。MSK您也可以使用此模式从一个 Amazon MSK 集群迁移到另一个 Amazon 集群。

Apache Kafka 包含该 MirrorMaker 功能,该功能可在两个 Kafka 集群之间复制数据。 MirrorMaker 由消费者集合组成,这些消费者属于消费者群体。使用者从源集群中的主题中读取数据,然后将这些数据传递至生产者,后者将数据写入目标集群。

亚马逊MSK文档包含使用 MirrorMaker 版本 1.0 将本地 Kafka 集群迁移到亚马逊MSK的过程的高级概述。此模式通过提供全面的 2.0 MirrorMaker 版本使用 step-by-step说明来补充这些信息。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 以下其中一类 Kafka 源集群:

    • 在本地数据中心

    • 在云中自行管理

    • 合作伙伴托管

限制

  • 要使用 2.0 MirrorMaker 版,源集群必须运行 Apache Kafka 版本 2.4.0 或更高版本。对于早期版本,请参阅 Amazon MSK 文档中的说明以使用 1.0 MirrorMaker 版本。

产品版本

  • MirrorMaker 版本 2.0

  • Apache Kafka 版本 2.4.0 或更高版本。有关亚马逊MSK支持的 Apache Kafka 版本的更多信息,请参阅支持的 Apach e Kafka 版本。

架构

源技术堆栈

  • 本地或自行管理 Kafka 集群

目标技术堆栈

  • 亚马逊MSK集群

目标架构

MirrorMaker 读取源集群上的数据并将其复制到目标 Amazon MSK 集群

此图显示以下流程:

  1. MirrorMaker 从源 Kafka 集群中的主题和消费者组中读取数据。

  2. MirrorMaker 将数据和消费者信息复制到目标 Amazon MSK 集群。

工具

AWS服务

其他工具

  • Apache Kafka 是开源事件流式传输平台。在这种模式中,您可以使用 Kafka 的MirrorMaker功能来执行跨集群迁移。

最佳实践

您可以在源环境或目标环境中运行,但建议您在尽可能靠近目标集群的地方运行。 MirrorMaker 有关更多信息,请参阅 Apache Kafka 文档中的最佳实践:远程使用和本地生产

操作说明

任务描述所需技能

创建一个VPC.

  1. 在目标AWS账户VPC中创建。有关说明,请参阅创建VPC

  2. 在新VPC版本的不同可用区中创建三个私有子网。有关说明,请参阅创建子网。使用不同的可用区可提供高可用性与容错能力。

    注意:如果您使用公共互联网连接迁移 Kafka 集群,请创建公有子网并启用对 Ama MSK zon 集群的公共访问权限

AWS系统管理员、 DevOps 工程师、云管理员

创建 Amazon MSK 集群。

创建 Amazon MSK 集群。有关说明,请参阅使用AWS管理控制台创建集群或使用创建集群AWSCLI。将集群配置为使用您之前创建的VPC和子网。

AWS系统管理员、 DevOps 工程师、云管理员
任务描述所需技能

安装 MirrorMaker。

  1. 启动实EC2例

  2. Connect 连接到您的EC2实例

  3. 在EC2实例上,下载并解压最新的 Kafka 版本。有关说明,请参阅快速入门(Kafka 文档)。

注意:在这种模式下,您将 MirrorMaker 2.0 作为专用 MirrorMaker 集群安装在 Amazon EC2 实例上。此选项在可用于开发环境,也是此模式中使用的方法。有关 MirrorMaker 2.0 其他部署选项的更多信息,请参阅此模式的 “其他信息” 部分。

AWS系统管理员、云管理员、 DevOps 工程师

指定 Kafka 集群信息。

在 Kafka 客户端安装 bin 文件夹内,创建 mm2.pro perties 文件并将其配置为源 Kafka 集群。有关说明,请参阅运行专用 MirrorMaker 集群(Kafka 文档)。

AWS系统管理员、云管理员、 DevOps 工程师

开始 MirrorMaker。

输入以下命令启动 MirrorMaker 并传递 mm2.propertie s 文件。

$ ./bin/connect-mirror-maker.sh mm2.properties
AWS系统管理员、云管理员、 DevOps 工程师

监控进度。

通过检查每个主题的上次偏移量与该主题的当前偏移量之间的滞后时间来检查进度。 MirrorMaker 有关说明,请参阅 Kafka 文档中的监控异地复制

AWS系统管理员、云管理员、 DevOps 工程师
任务描述所需技能

停止使用者应用程序。

停止所有使用源集群数据的使用者应用程序。

应用程序开发人员

启动使用者应用程序。

更改应用程序的引导配置,以指向目标集群。然后开始用于目标集群。

应用程序开发人员

停止源集群上的生产者。

当使用者应用程序在目标集群上成功使用时,请停止源集群上的生产者。

应用程序开发人员

在目标集群上启动生产程序。

更改生产者的配置引导服务器,然后指向其目标集群。等待 MirrorMaker 完成源集群的所有数据的镜像,然后再启动生产者。

应用程序开发人员

停下来 MirrorMaker。

在生产者移至目标集群后,停止 MirrorMaker。

AWS系统管理员、云管理员、 DevOps 工程师

相关资源

AWS资源

其他资源

其他信息

此模式作为专用 MirrorMaker 集群在 Amazon 上运行 MirrorMaker 2.0 EC2。此选项适用于开发环境。尽管此模式中没有对此进行讨论,但你也可以在 Kafka Connect 集群中运行 MirrorMaker 2.0。此部署选项使用 Kafka 生态系统中的框架,可改善扩展和维护。您可以将连接器部署至具有相关配置的 Kafka Connect 集群中,以运行应用程序。连接器可以在独立模式下运行以进行开发或测试,也可以在分布式模式下运行以用于生产。有关更多信息,请参阅在 Connect 集群 MirrorMaker 中运行(Apache Kafka 文档)。有关其他 MirrorMaker 2.0 部署选项的更多信息,请参阅演练:运行 MirrorMaker 2.0(Kafka 文档)。