Kraft 模式 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Kraft 模式

亚马逊 MSK 在 Kafka 版本 3.7.x 中引入了对 KraFT(Apache Kafka Raft)的支持。Apache Kafka 社区开发了 Kraft 来取代 Apache 在 Apache Kafka 集群中 ZooKeeper进行元数据管理。在 Kraft 模式下,集群元数据在一组 Kafka 控制器中传播,这些控制器是 Kafka 集群的一部分,而不是跨节点传播。 ZooKeeper Kraft 控制器包含在内,您无需支付任何额外费用,也不需要您进行额外的设置或管理。有关 Kraft 的更多信息,请参阅 KIP-500

以下是关于 MSK 上的 Kraft 模式的一些注意事项:

  • KraFT 模式仅适用于新集群。集群创建后,您就无法切换元数据模式。

  • 在 MSK 控制台上,您可以通过选择 Kafka 版本 3.7.x 并在集群创建窗口中选中 Kraft 复选框来创建基于 Kraft 的集群。

  • 要使用 MSK API CreateClusterCreateClusterV2操作在 Kraft 模式下创建集群,应使用3.7.x.kraft作为版本。3.7.x用作在 ZooKeeper 模式下创建集群的版本。

  • 在 Kraft 和 ZooKeeper 基于 Kraft 的集群上,每个代理的分区数量是相同的。但是,KraFT 允许您通过在集群中配置更多代理来为每个集群托管更多分区。

  • 在亚马逊 MSK 上使用 Kraft 模式无需更改 API。但是,如果您的客户端今天仍在使用--zookeeper连接字符串,则应更新您的客户端,使其使用--bootstrap-server连接字符串连接到您的集群。该--zookeeper标志在 Apache Kafka 版本 2.5 中已被弃用,并从 Kafka 版本 3.0 开始移除。因此,我们建议您使用最新的 Apache Kafka 客户端版本以及--bootstrap-server与集群的所有连接的连接字符串。

  • ZooKeeper 模式继续适用于所有已发布的版本,其中 Apache Kafka 也支持 zookeeper。支持的 Apache Kafka 版本有关终止对 Apache Kafka 版本和未来更新的支持的详细信息,请参阅。

  • 你应该检查你使用的任何工具是否能够在没有 ZooKeeper 连接的情况下使用 Kafka Admin API。在 Amazon MSK LinkedIn 上使用 Apache Kafka 的巡航控制系统有关将集群连接到巡航控制的更新步骤,请参阅。Cruise Control 还提供了不带巡航控制系统的运行说明 ZooKeeper。

  • 您无需直接访问集群的 KraFT 控制器即可执行任何管理操作。但是,如果您使用开放监控来收集指标,则还需要控制器的 DNS 端点来收集有关集群的一些与控制器无关的指标。您可以从 MSK 控制台或使用 ListNodesAPI 操作获取这些 DNS 终端节点。有关Prometheus 的开源监控系统为基于 Kraft 的集群设置开放监控的更新步骤,请参阅。

  • 与模式集群相比 ZooKeeper ,您无需监控 Kraft 模式集群的其他CloudWatch 指标。MSK 管理您的集群中使用的 KraFT 控制器。

  • 在 Kraft 模式集群中,您可以使用--bootstrap-server连接字符串继续管理 ACL。不应使用--zookeeper连接字符串来管理 ACL。请参阅 Apache Kafka ACL

  • 在 Kraft 模式下,集群的元数据存储在 Kafka 中的 Kraft 控制器上,而不是存储在外部节点上。 ZooKeeper 因此,您无需像控制节点那样单独控制对控制器 ZooKeeper 节点的访问。