主要观点:现代分布式系统常以 Kafka 为组件,Apache ZooKeeper 虽为 Kafka 重要部分但未被充分理解,文中介绍 KRaft 模式及其相较于 ZooKeeper 的优势,包括控制器仲裁、代理元数据与状态、分区重分配、关闭与恢复时间等方面,同时提到迁移到 KRaft 模式的挑战及迁移指南,结论认为从 ZooKeeper 到 KRaft 模式是 Kafka 发展的重要里程碑,新集群推荐采用 KRaft 模式,现有集群需评估迁移风险与收益。
关键信息:
- Kafka 利用多节点构成集群实现高可用和高吞吐量,ZooKeeper 负责集群管理的多个方面。
- ZooKeeper 存在高可用性要求导致部署复杂、吞吐量随集群增长而降低、成为瓶颈、通信效率低、控制器选举耗时等局限性。
- KRaft 模式通过控制器仲裁、代理元数据获取等方式简化集群管理,减少错误和操作复杂性,提高效率和容错性。
- 对于新集群,Kraft 模式是默认模式,现有集群需升级到至少 3.9 版本,有详细迁移指南。
重要细节: - ZooKeeper 负责集群成员管理、领导者选举、集群元数据维护、恢复、服务发现和访问控制等。
- KRaft 模式中控制器采用 Raft 算法,有控制器仲裁,代理从活动控制器获取更新,减少恢复时间等。
- 迁移到 KRaft 模式虽简化配置管理但不一定减少节点数量,需根据集群设置和需求确定。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。