Kafka 4.0.0震撼来袭,彻底摒弃Zookeeper

Apache Kafka 4.0.0 版本发布,带来了众多新功能和改进。该版本是第一个完全不依赖 Apache ZooKeeper 运行的主要版本,默认以 KRaft 模式运行,简化了部署和管理。此外,还引入了新的消费者组协议、提供对 Queues for Kafka 的早期访问、更新了 Java 版本要求、移除了一些旧的 API 和功能等。

1、重要特性说明

  • 无 ZooKeeper 运行

    Apache Kafka 4.0 标志着第一个完全没有 Apache ZooKeeper 运行的主要版本。默认以 KRaft 模式运行,简化了部署和管理,降低了运营开销,增强了可扩展性并简化了管理任务。

  • 新消费者组协议

    Kafka 4.0 带来了 KIP-848 的全面可用性,引入了强大的新消费者组协议,显著提高再平衡性能,减少停机时间和延迟,增强了消费者组的可靠性和响应能力。

  • Queues for Kafka

    提供对 Queues for Kafka(KIP-932)的早期访问,使 Kafka 能够直接支持传统的队列语义,扩展了 Kafka 的多功能性。

  • Java 版本要求更新

    Kafka 4.0 中,Kafka Clients 和 Kafka Streams 需要 Java 11,而 Kafka Brokers、Connect 和 Tools 现在需要 Java 17。

  • Kafka Streams 改进

    KIP-1104 允许在 KTable 连接中从键和值中提取外键;KIP-1112 允许自定义处理器包装;KIP-1065 为 ProductionExceptionHandler 添加 "retry" 选项;KIP-1091 改进了 Kafka Streams 运算符指标。

2、使用新特性的注意点

ZooKeeper 依靠自己强一致性的特点,一直在分布式届延续着自己的传奇,很多软件都会选择它作为分布式集群的载体,如之前的4.0之前的Kafka、spark、hadoop、dubbo的注册中心等。但是Kafka在以强大推吐量著称,强依赖强一致性的ZooKeeper,势必带来一定的性能瓶颈。ZooKeeper 增加了系统的复杂性,维护和管理 ZooKeeper 集群需要额外的资源和专业知识。KRaft作为Kafka内部的算法机制直接替代ZooKeeper,使得部署和维护都变得简单了许多。

Raft 协议被用于分布式存储系统中,以确保数据在多个节点间的一致性和可用性。例如,分布式键值存储(如 etcd、Consul)和分布式数据库(如 TiKV)都采用了 Raft 协议。KRaft则是用户Kafka内部的专属协议。

新消费者组协议的核心就是增量式重平衡,不再依赖全局同步屏障,而是由组协调器(GroupCoordinator)驱动。将凭屏障的颗粒度有全局编程局部,细粒度的控制消费者。只有更改的消费者和分区变化时只会触发对应的屏障,其他不受影响。这也明显的提高处理的速度。

Kafka 4.0 通过引入共享组 (Share Group) 机制提供了类似队列的功能。不过,它并非真正意义上的队列,而是利用 Kafka 已有的主题(Topic)和分区(Partition)机制,结合新的消费模式和记录确认机制来实现类似队列的行为。

Kafka 4.0对JDK也有要求,Kafka 客户端和 Kafka Streams 需要 Java 11,Kafka Brokers、Connect工具需要 Java 17。你还在坚持着JDK你发任你发,我用JAVA8的态度么,如果这样,Kafka 4.0的新特性也将无法尝试。

3、小结

各种软件都在拥抱新的变化,不断地兼容新的产品。我们是不是也要去迭代自己的知识库,去学习这些新的东西,要不然就被时代遗弃了。


关注我的公众号:【编程朝花夕拾】,获取首发内容。

相关推荐
CoderYanger7 分钟前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
3***31218 分钟前
java进阶1——JVM
java·开发语言·jvm
IT_陈寒16 分钟前
Python高手都在用的5个隐藏技巧,让你的代码效率提升50%
前端·人工智能·后端
FeiHuo5651520 分钟前
微信个人号开发中如何高效实现API二次开发
java·开发语言·python·微信
源码技术栈28 分钟前
什么是云门诊系统、云诊所系统?
java·vue.js·spring boot·源码·门诊·云门诊
拾忆,想起37 分钟前
Dubbo动态配置实时生效全攻略:零停机实现配置热更新
分布式·微服务·性能优化·架构·dubbo
周杰伦_Jay37 分钟前
【 2025年必藏】8个开箱即用的优质开源智能体(Agent)项目
人工智能·机器学习·架构·开源
Coder-coco38 分钟前
游戏助手|游戏攻略|基于SprinBoot+vue的游戏攻略系统小程序(源码+数据库+文档)
java·vue.js·spring boot·游戏·小程序·论文·游戏助手
Qiuner39 分钟前
Spring Boot 机制二:配置属性绑定 Binder 源码解析(ConfigurationProperties 全链路)
java·spring boot·后端·spring·binder
Victor35639 分钟前
Redis(151)Redis的内存使用如何监控?
后端