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

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

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 节点的访问。