本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
CreateCluster
或CreateClusterV2
操作在 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 节点的访问。