KRaft 模式 - Amazon Managed Streaming for Apache Kafka

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

KRaft 模式

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

以下是有关开KRaft启模式的一些注意事项MSK:

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

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

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

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

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

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

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

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

  • 对于KRaft模式集群而不是 ZooKeeper 模式集群,您无需监控其他CloudWatch 指标。MSK管理您的集群中使用的KRaft控制器。

  • 您可以使用--bootstrap-server连接字符串在KRaft模式下ACLs使用集群继续进行管理。不应使用--zookeeper连接字符串进行管理ACLs。请参阅 阿帕奇 Kafka ACLs

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