Kafka 4.0 采用 KRaft 模式简化架构

360影视 欧美动漫 2025-04-13 10:32 3

摘要:Apache Kafka 4.0 的发布是一个重要的里程碑,本次大版本更新引入了大量的新功能和改进,其中最引人注目的是 KRaft 模式下的默认操作,根据 Confluent 的文档,它消除了对 Apache ZooKeeper 的依赖。

作者 | Steef-Jan Wiggers

译者 | 平川

策划 | Tina

Apache Kafka 4.0 的发布是一个重要的里程碑,本次大版本更新引入了大量的新功能和改进,其中最引人注目的是 KRaft 模式下的默认操作,根据 Confluent 的文档,它消除了对 Apache ZooKeeper 的依赖。

十多年来,ZooKeeper 一直是 Kafka 的支柱,社区感谢了它的贡献。然而,Kafka 4.0 默认采用 KRaft,无需再单独维护 ZooKeeper 组件,简化了部署和管理。

AWS 社区建设者 Lalit Moharana 在 LinkedIn 上发帖:

随着 Apache Kafka 在即将发布的 Kafka 4.0 中采用 KRaft,ZooKeeper 将退居二线,这标志着这段长达 14 年的合作关系即将结束。这一转变简化了 Kafka 的架构,抛弃了独立的 ZooKeeper 系统,提高了可扩展性,并为自给自足的未来铺平了道路 —— 这一切都要归功于 KRaft 的 Raft 协议。

此外:

为什么要改变?ZooKeeper 的开销和限制(10 万多个分区)跟不上 Kafka 的增长。还有:KRaft 的优势:一个系统,数以百万计的分区,更快的恢复 —— Kafka 已经准备好翱翔蓝天!

除了架构上的转变,Kafka 4.0 还正式引入了下一代消费者组协议 KIP-848 。这一新协议旨在大幅提高再平衡性能,减少消费者组的停机时间和延迟,尤其是在大规模环境中。通过最大限度地减少“停止世界(stop-the-world)”的再平衡,Kafka 旨在提供更稳定、响应更快的数据流体验。在服务器端,新协议默认启用,消费者端则需要通过设置 group.protocol=consumer 进行选用。

在 Hacker News 上的一个讨论 中,一位回复者评论道:

从 SNS/SQS 切换到 Kafka 后,我立即注意到了一件事,那就是它的速度。消息几乎可以立即发送 / 接收。

此外,Kafka 4.0 还提供了 Queues for Kafka(KIP-932)的早期试用。该功能引入了“共享组(share group)”的概念,可以使用常规的 Kafka 主题实现协同消费,从而让 Kafka 可以有效地支持传统的队列语义。虽然不是直接添加“队列”数据结构,但这一增强功能提高了 Kafka 的多功能性,使其适用于更广泛的消息传递用例,特别是那些需要类似于持久共享订阅的点对点消息传递模式的。

在 LinkedIn 上的一篇文章中,IBM 人工智能与数据工程负责人 Govindan Gopalan 总结道:

早期队列支持(KIP-932)引入了点对点消息传递,将 Kafka 的用例扩展到了传统的发布 - 订阅工作流之外。

这一大版本标志着 Kafka 向平台现代化迈出了重要的一步。作为演进的一部分,Kafka 4.0 删除了已废弃 12 个月以上的 API。此外,它还更新了最低 Java 要求,Kafka Clients 和 Kafka Streams 现在需要 Java 11,而 Kafka Brokers、Connect 和 Tools 则需要 Java 17。这一举措旨在鼓励采用较新的 Java 特性,并使 Kafka 与当前其他的技术栈保持一致。该版本还更新了支持的最低客户端和代理版本(KIP-896),并为支持的升级路径定义了新的基线要求,详见 KIP-1124。

原文链接:

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

“开源版coze”爆火,融资超 4.6 亿!如今 Docker 拉取量超 1 亿,斩获 77.5k star

GPU 编程“改朝换代”:英伟达终为 CUDA 添加原生 Python 支持,百万用户变千万?

7500 万竟滚成 2.5 亿巨坑,违约还没后果!这家“皮包”科技公司把美政府“忽悠”瘸了,延期 2 年还不断甩锅!

Meta开源Llama 4,正面迎战 DeepSeek!经过重新设计,首次采用MoE

来源:InfoQ

相关推荐