本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用将本地 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 从源 Kafka 集群中的主题和消费者组中读取数据。
MirrorMaker 将数据和消费者信息复制到目标 Amazon MSK 集群。
工具
AWS服务
亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。
适用于 Apache Kafka 的亚马逊托管流媒体 Kafka(MSK亚马逊)是一项完全托管的服务,可帮助您构建和运行使用 Apache Kafka 处理流数据的应用程序。
Amazon Virtual Private Cloud(亚马逊VPC)可帮助您将AWS资源启动到您定义的虚拟网络中。此虚拟网络类似于您在自己的数据中心中运行的传统网络,其优点是使用的可扩展基础架构。AWS
其他工具
Apache Kafka
是开源事件流式传输平台。在这种模式中,您可以使用 Kafka 的MirrorMaker 功能来执行跨集群迁移。
最佳实践
您可以在源环境或目标环境中运行,但建议您在尽可能靠近目标集群的地方运行。 MirrorMaker 有关更多信息,请参阅 Apache Kafka 文档中的最佳实践:远程使用和本地生产
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建一个VPC. |
| AWS系统管理员、 DevOps 工程师、云管理员 |
创建 Amazon MSK 集群。 | 创建 Amazon MSK 集群。有关说明,请参阅使用AWS管理控制台创建集群或使用创建集群AWSCLI。将集群配置为使用您之前创建的VPC和子网。 | AWS系统管理员、 DevOps 工程师、云管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
安装 MirrorMaker。 |
注意:在这种模式下,您将 MirrorMaker 2.0 作为专用 MirrorMaker 集群安装在 Amazon EC2 实例上。此选项在可用于开发环境,也是此模式中使用的方法。有关 MirrorMaker 2.0 其他部署选项的更多信息,请参阅此模式的 “其他信息” 部分。 | AWS系统管理员、云管理员、 DevOps 工程师 |
指定 Kafka 集群信息。 | 在 Kafka 客户端安装 | AWS系统管理员、云管理员、 DevOps 工程师 |
开始 MirrorMaker。 | 输入以下命令启动 MirrorMaker 并传递 mm2.propertie s 文件。
| AWS系统管理员、云管理员、 DevOps 工程师 |
监控进度。 | 通过检查每个主题的上次偏移量与该主题的当前偏移量之间的滞后时间来检查进度。 MirrorMaker 有关说明,请参阅 Kafka 文档中的监控异地复制 | AWS系统管理员、云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
停止使用者应用程序。 | 停止所有使用源集群数据的使用者应用程序。 | 应用程序开发人员 |
启动使用者应用程序。 | 更改应用程序的引导配置,以指向目标集群。然后开始用于目标集群。 | 应用程序开发人员 |
停止源集群上的生产者。 | 当使用者应用程序在目标集群上成功使用时,请停止源集群上的生产者。 | 应用程序开发人员 |
在目标集群上启动生产程序。 | 更改生产者的配置引导服务器,然后指向其目标集群。等待 MirrorMaker 完成源集群的所有数据的镜像,然后再启动生产者。 | 应用程序开发人员 |
停下来 MirrorMaker。 | 在生产者移至目标集群后,停止 MirrorMaker。 | AWS系统管理员、云管理员、 DevOps 工程师 |
相关资源
AWS资源
其他资源
MirrorMaker 2.0
(Apache Kafka 改进提案) 异地复制:跨集群数据镜像
(Apache Kafka 文档)
其他信息
此模式作为专用 MirrorMaker 集群在 Amazon 上运行 MirrorMaker 2.0 EC2。此选项适用于开发环境。尽管此模式中没有对此进行讨论,但你也可以在 Kafka Connect 集群中运行 MirrorMaker 2.0。此部署选项使用 Kafka 生态系统中的框架,可改善扩展和维护。您可以将连接器部署至具有相关配置的 Kafka Connect 集群中,以运行应用程序。连接器可以在独立模式下运行以进行开发或测试,也可以在分布式模式下运行以用于生产。有关更多信息,请参阅在 Connect 集群 MirrorMaker 中运行