亚马逊AWS官方博客

推出适用于 Amazon MSK 的 Express 代理,为您的 Kafka 集群提供高吞吐量和更快的扩展



今天,我们宣布 Amazon Managed Streaming for Apache Kafka(Amazon MSK)的新型代理 Express 代理正式发布。其设计旨在实现与运行 Apache Kafka 的标准代理相比,每代理吞吐量提升多达三倍,扩展速度加快多达 20 倍,且恢复时间缩短 90%。默认情况下,Express 代理预先配置了 Kafka 最佳实践,支持 Kafka API,并提供 Amazon MSK 客户所期望的相同低延迟性能,使客户可以继续使用现有的客户端应用程序,而无需进行任何更改。

使用 Amazon MSK 预置集群时,Express 代理可为 Kafka 应用程序提供更好的计算和存储弹性。Amazon MSK 是一项完全托管的 AWS 服务,可让您更轻松地基于 Apache Kafka 构建和运行具有高可用性和可扩展性的应用程序。

让我们深入了解 Express 代理的一些主要功能及其带来的好处:

  • 通过无需手动操作的存储管理简化运维 — Express 代理提供无限存储,无需预置,可消除与磁盘相关的限制。集群大小调整更简单,只需只需根据建议的每代理吞吐量划分入站和出站吞吐量即可。这样就无需进行主动磁盘容量监控和扩展,从而简化了集群管理,并通过消除潜在的故障源提高了韧性。
  • 代理数量更少,每代理吞吐量高达三倍 — 更高的每代理吞吐量意味着在相同工作负载下,集群大小可以更小。标准代理的吞吐量必须考虑客户端流量和后台操作,m7g.16xl 标准代理可以安全处理 154 MBps 的入站流量。Express 代理采用固定的设置和资源隔离,使 m7g.16xl 大小的实例能够安全地管理高达 500 MBps 的入站流量,不会在集群事件期间影响性能或可用性。
  • 利用率更高,扩展速度提升 20 倍 — Express 代理可减少扩展期间的数据移动,使其速度比标准代理快 20 倍。这样可以更快、更可靠地调整集群大小。您可以监控每个代理的入站吞吐能力,并在几分钟内添加代理,无需为应对流量激增而过度预置。
  • 恢复速度提升 90%,韧性更高 — Express 代理专为需要高韧性的关键任务应用程序而设计。它们预先配置了最佳实践默认值,包括三向复制(RF=3),可减少因配置不当而导致的故障。与标准 Apache Kafka 代理相比,Express 代理从瞬时故障中恢复的速度要快 90%。Express 代理的重新平衡和恢复过程仅占用极少的集群资源,从而简化了容量规划工作。这消除了在调整集群大小时资源利用率增加的风险,也无需进行持续的监控。

根据您的工作量和偏好,Amazon MSK 为您提供多种选择:

预置 MSK MSK Serverless
标准代理 Express 代理
配置范围 最灵活 灵活 最不灵活
集群重新平衡 客户管理 客户管理
但速度提升高达 20 倍
MSK 托管
容量管理 是(仅计算)
存储管理

Express 代理可降低了成本,提供更高的韧性,并减少运维开销,是适合各种 Kafka 工作负载的理想之选。如果您希望使用 Kafka 而不管理其容量、配置或扩展方式中的任何方面,则可以选择 Amazon MSK Serverless。它提供了完全抽象的 Apache Kafka 体验,无需任何基础设施管理,能够自动扩展,并采用按使用量付费的模式进行计费,让您无需优化资源利用率。

开始使用 Amazon MSK 中的 Express 代理
要开始使用 Express 代理,您可以使用 Amazon MSK 提供的大小和定价工作表。该工作表可帮助您估算出容纳您的工作负载所需的集群大小,并为您提供大致的每月总成本估算。

工作负载的吞吐量需求是决定集群大小的主要因素。此外,您还应考虑其他因素,如分区数和连接数,以确定所需集群中的代理大小和数量。例如,如果您的流式传输应用程序需要 30MBps 的数据输入(写入)能力和 80MBps 的数据输出(读取)能力,您可以使用三个 express.m7g.large 代理来满足您的吞吐量需求(假设您的工作负载的分区数在 Amazon MSK 为 m7g.large 实例推荐的最大分区数范围内)。

下表显示了为确保可持续和安全运行,为每个实例大小推荐的最大输入、输出和分区数。您可以在 Amazon MSK 开发人员指南的最佳实践部分了解关于这些建议的更多信息。

实例大小 输入(MBps) 输出(MBps)
express.m7g.large 15.6 31.2
express.m7g.4xlarge 124.9 249.8
express.m7g.16xlarge 500.0 1000.0

确定工作负载所需的 Express 代理的数量和大小后,请转到 AWS 管理控制台或使用 CreateCluster API 创建 Amazon MSK 预置集群。

Amazon MSK 控制台上创建新集群时,在代理类型选项中选择 Express 代理,然后选择要为代理配置的计算容量。如屏幕截图所示,您可以将 Apache Kafka 3.6.0 版本和基于 Graviton 的实例用于 Express 代理。您无需为 Express 代理预调配存储空间。

您还可以自定义其中一些配置,以根据自己的偏好进一步微调集群的性能。要了解更多信息,请访问 Amazon MSK 开发人员指南中的 Express 代理配置

要在 AWS 命令行界面(AWS CLI)中创建 MSK 集群,请使用 create-cluster 命令。

aws kafka create-cluster \
    --cluster-name "channy-express-cluster" \
    --kafka-version "3.6.0" \
    --number-of-broker-nodes 3 \
    --broker-node-group-info file://brokernodegroupinfo.json

一个名为 brokernodegroupinfo.json 的 JSON 文件指定了您希望 Amazon MSK 在其上分发代理节点的三个子网。

{
    "InstanceType": "express.m7g.large",
    "BrokerAZDistribution": "DEFAULT",
    "ClientSubnets": [
        "subnet-0123456789111abcd",
        "subnet-0123456789222abcd",
        "subnet-0123456789333abcd"
    ]
}

创建集群后,您可以使用引导连接字符串将客户端连接到集群端点。

使用 Express 代理,您可以垂直扩缩(更改实例大小)或水平扩缩(添加代理)。垂直扩缩无需重新分配分区即可使吞吐量翻倍。水平扩缩以三个为一组添加代理,并允许您创建更多分区,但需要重新分配分区才能让新代理为流量提供服务。

Express 代理的主要优势是您可以在几分钟内添加代理并重新平衡分区。相对而言,添加标准代理后重新平衡分区可能需要几个小时。下图显示了在集群中添加 3 个 Express 代理并为每个新代理重新分配 2000 个分区后重新平衡分区所需的时间。

如您所见,重新分配这些分区并利用新代理的额外容量大约需要 10 分钟。当我们在由标准代理组成的等效集群上运行相同的实验时,分区重新分配需要超过 24 小时。

要了解有关分区重新分配的更多信息,请访问 Apache Kafka 文档中的扩展集群

注意事项
以下是您应该了解的有关 Express 代理的一些信息:

  • 数据迁移 — 您可以使用 Amazon MSK 复制器将现有 Kafka 或 MSK 集群中的数据迁移到由 Express 代理组成的集群,它会将集群的数据和元数据复制到新集群。
  • 监控 — 您可以使用 Amazon CloudWatch 指标在集群中和代理级别监控由 Express 代理组成的集群,并使用 Prometheus 启用开放监控,以使用 JMX Exporter 和 Node Exporter 公开指标。
  • 安全性 — 与其他代理类型一样,Amazon MSK 与 AWS Key Management Service(AWS KMS)集成,为 Express 代理中的存储提供透明的服务器端加密。使用 Express 代理创建 MSK 集群时,您可以指定希望 Amazon MSK 用于加密静态数据的 AWS KMS 密钥。如果您未指定 KMS 密钥,Amazon MSK 将为您创建 AWS 托管式密钥并代表您使用它。

现已发布
Express 代理类型现已在以下区域推出:美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)和欧洲地区(斯德哥尔摩)。

对于 Express 代理,您需要按小时费率支付 Apache Kafka 代理实例使用费(以一秒的分辨率计费),费用取决于代理实例的大小和 MSK 集群中的活跃代理。您还需要按 GB 费率为写入 Express 代理的数据付费(按每字节分辨率计费)。要了解更多信息,请访问 Amazon MSK 定价页面。

Amazon MSK 控制台中试用适用于 Amazon MSK 的 Express 代理。有关更多信息,请访问 Amazon MSK 开发人员指南,并向 AWS re:Post for Amazon MSK 或通过您常用的 AWS Support 联系人发送反馈。

Channy


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。