View a markdown version of this page

从非 MSK Apache Kafka 集群迁移到亚马逊 MSK Express 经纪商 - Amazon Managed Streaming for Apache Kafka

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

从非 MSK Apache Kafka 集群迁移到亚马逊 MSK Express 经纪商

您可以使用 MSK Replicator 将 Apache Kafka 工作负载从自我管理的环境迁移到带有 Express 代理的 Amazon MSK 预配置集群。MSK Replicator 支持从启用了身份验证的 Kafka 部署(Kafka 版本 2.8.1 或更高版本)迁移数据。 SASL/SCRAM

注意

只有 MSK Replicator 需要进行 SASL/SCRAM 身份验证才能连接到自我管理的 Kafka 集群。您的客户端应用程序可以继续使用其现有的身份验证机制。

先决条件

开始之前,确保您已准备好以下事项:

  1. 源运行版本 2.8.1 或更高版本的 Apache Kafka 集群

  2. 在源集群上启用了 SASL/SCRAM 身份验证

  3. 在源集群上配置了 SSL 加密

  4. 通过 AWS Site-to-Site VPN 或 AWS 直接连接进行网络连接

  5. 为 Secrets Manager 访问配置的 VPC 子网

有关详细说明,请参阅为带有自我管理的 Apache Kafka 集群的 MSK Replicator 设置先决条件

步骤 1:创建 Amazon MSK Express 集群

使用启用了 IAM 身份验证的 Express 代理创建一个 MSK 预配置集群。至少三个经纪人中的三个经纪人 AZs。请参阅准备目标集群

步骤 2:创建 IAM 执行角色

附加AWSMSKReplicatorExecutionRoleAWSSecretsManagerClientReadOnlyAccess和管理策略。为配置信任策略kafka.amazonaws.com。请参阅为带有自我管理的 Apache Kafka 集群的 MSK Replicator 设置先决条件

步骤 3:在自管 SASL/SCRAM 集群上配置和 SSL

创建具有所需 ACL 权限的专用 SCRAM 用户。配置 SSL 证书。请参阅为带有自我管理的 Apache Kafka 集群的 MSK Replicator 设置先决条件

第 4 步:将凭据存储在 S AWS ecrets Manager 中

使用usernamepassword、和certificate键值对创建密钥。请参阅为带有自我管理的 Apache Kafka 集群的 MSK Replicator 设置先决条件

步骤 5:创建复制器

使用 CreateReplicator API,EARLIEST起始位置、相同主题名称复制,并synchroniseConsumerGroupOffsets设置为true。如果您计划为回滚功能设置双向复制(步骤 6),请在正向和反consumerGroupOffsetSyncMode向复制器ENHANCED上也将设置为。等待大约 30 分钟,让复制器进入运行状态。请参阅CreateReplicator 自管理 Kafka 集群的 API 示例

步骤 6:(可选)设置双向复制

创建从 MSK Express 集群返回到自管理集群的反向复制器,以实现回滚功能。请参阅CreateReplicator 自管理 Kafka 集群的 API 示例

步骤 7:监控复制进度

监控以下指标:

  • MessageLag(应达到 0)

  • ReplicationLatency

  • ConsumerGroupOffsetSyncFailure(应为 0)

  • ConsumerGroupCount

  • OffsetLag (MSK Cluster)OffsetLag (Non-MSK Cluster)

有关更多信息,请参阅 监控复制

步骤 8:迁移应用程序

请按照以下步骤迁移应用程序:

  1. 停止生产者写入自管集群

  2. 使用 IAM 身份验证将生产者重新配置为 MSK Express 集群

  3. 监视MessageLag直到达到 0

  4. 停止使用自管集群的消费者

  5. 将使用者重新配置到 MSK Express 集群

步骤 9:(可选)回滚到自建集群

如果配置了双向复制,则可以撤消迁移步骤以回滚到自我管理的集群。反向复制器(MSK Express → External)将使自我管理的集群保持同步,因此用户可以在不丢失数据的情况下被重定向回来。