王炸!Kafka 4.0 重磅发布,Java 8 和 Zookeeper 彻底被抛弃了,一个时代结束了!

news/2025/3/28 14:10:05/文章来源:https://www.cnblogs.com/javastack/p/18792873

大家好,我是R哥。

Kafka 4.0 终于来了!

这次更新可不只是常规的版本优化,而是一次重大架构调整,尤其是不再支持 Java 8,彻底移除了 Zookeeper,正式启用 KRaft 模式,让 Kafka 变得更加独立、高效。

除了这个重磅更新外,Kafka 4.0 还砍掉了一些历史包袱,还带来几个重磅新功能,这次升级可谓是大刀阔斧,革新不断,让我们一起看看它的主要变化吧。

Kafka 4.0 主要新特性

1、正式移除 Zookeeper

说到 Kafka 4.0,第一个必须说的就是:Zookeeper,彻底移除了,这绝对是 Kafka 4.0 版本中最最最重磅的变化。

来看看旧模型和新模型的区别:

在 Kafka 早期架构中,Zookeeper 一直和 Kafka 深度绑定,负责保存 Kafka 的元数据、节点状态、选举控制器等核心功能。

虽然 Zookeeper 也是非常主流的分布式中间件,但对于讲究性能的 Kafka 来说越来越成为了累赘,比如 Kafka 需要额外维护一个 Zookeeper 集群,这就增加了管理和维护成本,扩展性也受限,影响性能。

所以 Kafka 前几年就弄出来了KRaft 模式,把 Kafka 的元数据从 Zookeeper 搬到了 Kafka 自己管理的内部系统中。这就相当于 Kafka 自力更生,逐步脱离 Zookeeper 的控制。

KRaft 是 Raft 的一个分支,但有一些不同,它扩展了 Kafka 现有的复制协议,并增加了一些与 Raft 相关的功能。

Kafka 2.8.0 版本已经对 Zookeeper 做了早期替换:

而这次 Kafka 4.0 正式移除 Zookeeper 的所有功能,KRaft 模式全面接管所有功能

Kafka 4.0 不再支持使用 Zookeeper 模式启动集群,也就是说,从这个版本开始,你就得全面使用 KRaft 模式(Kafka Raft) 来运行 Kafka。

KRaft 带来的好处包括:

  • 部署更简单,启动更快,成本更低 。
  • 消除了单独维护 ZooKeeper 集合的复杂性
  • 只需保护一个组件,单一、更简单的安全模型
  • 降低了运营开销,增强了可扩展性并简化了管理任务。
  • 从自身加载数据,性能比从用 ZK 高数 10 倍

总之,移除 ZK,让 Kafka 更轻、更快、更强、更易维护

升级 4.0 注意事项:

  • Kafka 4.0 使用的是 KRaft 模式,软件和元数据版本必须至少为 3.3.x。
  • 对于 KRaft 模式早于 3.3.x 的版本,建议先升级到 3.9.x,然后再升级到 4.0.x。

2、移除旧协议 API 版本

Kafka 一直以来都死磕着兼容所有协议 API 版本,这么多年过去了,维护这么多旧版本的成本是越来越高,代码变复杂了,测试也麻烦了,关键是用老版本的人也越来越少,大部分都早换到了支持新协议的客户端。

所以,到了 Kafka 4.0,彻底移除了一些旧协议 API 版本,把协议 API 版本的基准提高到 Kafka 2.1。简单来说就是,仅保留 Kafka 2.1 支持的最新版本及之后推出的新版本。

这样一来,Kafka 4.0 既能摆脱一堆历史包袱,又不会影响太多用户,算是个折中方案。总之,该优化的优化,该淘汰的淘汰,让 Kafka 走得更远、更稳!

升级 4.0 注意事项:

  • 在升级 Kafka brokers 和 Java 客户端之前,应确保为 2.1 或更高版本。
  • 如果不是用的 Kafka 官方的 kafka 客户端,需要自行检查兼容性问题。

3、新一代消费者重平衡协议

Kafka 3.7.0 推出了新一代消费者再平衡协议的早期版本,主要有三个变化:

  • 新的消费者再平衡协议;
  • 全新的组协调器;
  • 全新的消费者线程模型。

新一代消费者重平衡协议,将复杂性从消费者转移到代理内的组协调器,并使用了全新的消费者线程模型

新协议的优化,在简化客户端同时,能显著减少停机时间和延迟,提高了消费者组的稳定性和性能,尤其是在大规模部署中。

在 Kafka 3.7.0 还不建议生产使用了,Kafka 4.0 正式宣布告别 stop-the-world 重平衡,全面开放下一代消费者重新平衡协议正式可用

4、Kafka Queues 队列来了

在 Kafka 4.0 版本之前,Kafka 主要采用发布-订阅模式,虽然也可以实现点对点的消息传递,但是存在一些局限性。

Kafka 4.0 引入了 "Queues" 队列功能,使 Kafka 能够直接支持传统队列语义,旨在更直接和高效地使用点对点消息模式,增强其在点对点消息模式下的能力。

如图所示:

Kafka 队列功能主要解决以下问题:

  • 允许多个消费者从同一分区读取数据;
  • 个人记录确认;
  • 仍然保持生产者和消费者分离;
  • 没有最大队列大小;
  • 消息仍然保留

Kafka 队列是通过共享组(Share Groups)来实现的,共享群组允许多个消费者协作消费同一主题的消息,实现类似传统队列的语义。多个消费者可以共同处理同一分区内的消息,提高了消息处理的并行度和效率。

Kafka 队列现在还是早期特性,不建议生产使用,等后面的版本正式可用吧。

5、其他变化

Kafka 4.0 的其他新变化:

  • 删除了至少 12 个月已弃用的 API,以简化平台并鼓励采用新功能;
  • 完全弃用 Java 8,Kafka 客户端和 Kafka Streams 需要 Java 11,Kafka Brokers、Connect、工具需要 Java 17;毕竟《Java 24 正式发布,超神了。。。》都发布了。
  • 为支持升级路径,定义了新的基准要求;
  • ......

更多可参考官方发布说明。

总结

Kafka 4.0 版本的更新,标志着 Kafka 正式迈入了一个全新的阶段。

从完全弃用 Java 8,再移除 Zookeeper 到全面启用 KRaft,Kafka 变得更轻、更快、更强、更易维护。

还有旧协议版本的清理、新的消费者重平衡协议、队列功能的引入等一系列优化,让 Kafka 进一步提升了可扩展性和性能,同时降低了维护成本。

不过,升级到 Kafka 4.0 也需要谨慎对待,特别是 Zookeeper 模式已经被完全移除,老版本的用户需要逐步过渡到 KRaft 模式。

同时,部分旧协议 API 也已被砍掉,所以在升级前一定要检查兼容性,确保你的系统不会受到影响。

总之,Kafka 4.0 是一次里程碑式的升级,无论是新的架构调整还是性能优化,都让 Kafka 这个小钢炮又上了一个新的台阶,太强了。

参考链接:

  • https://kafka.apache.org/blog
  • https://x.com/BdKozlovski/status/1891139227599183920
  • https://x.com/BdKozlovski/status/1658923666103468033

版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。

更多文章推荐:

1.Spring Boot 3.x 教程,太全了!

2.3,000+ 道 Java面试题及答案整理(最新版)

3.免费获取 IDEA 激活码的 7 种方式(最新版)

4.Java & DeepSeek & AI 学习资料分享

5.程序员精美简历模板分享

觉得不错,别忘了随手点赞+转发哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906038.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

会计学-开篇(一)

介绍 是不是觉得会计学极其枯燥,死板,无趣?因为会计准则本身就是人为设定的游戏规则,整个学习过程感觉就是一直在背诵各种条条框框,完全没有创造性。相比之下,不管是数学,编程,物理学,生物学,投资学,都显得很有意思,这些学科都是帮助我们通向创造。而会计学似乎只会…

会计学-开篇

介绍 是不是觉得会计学极其枯燥,死板,无趣?因为会计准则本身就是人为设定的游戏规则,整个学习过程感觉就是一直在背诵各种条条框框,完全没有创造性。相比之下,不管是数学,编程,物理学,生物学,投资学,都显得很有意思,这些学科都是帮助我们通向创造。而会计学似乎只会…

2 小时,我搭好了“一物一码” 的设备巡检管理系统!

说实话,以前每次看到设备巡检表上那些手写的记录,我就头疼——字迹潦草、容易丢、查起来还费劲。直到昨天下午,我实在忍不了了,决定自己动手搞个"一物一码"的巡检系统。 从零到落地,现在所有设备贴个二维码,手机一扫就能查记录、报故障,还能自动生成报表! 老…

2022-PTA正式赛-L1-8 静静的推荐(思路)

未达到分数线passAcCode: #include<bits/stdc++.h> using namespace std; int vis[100010]; int main(){int N, K, S, ans = 0;cin >> N >> K >> S;while(N--){int sc1, sc2;cin >> sc1 >> sc2;if(sc1 < 175) continue;if(sc1 >= 17…

GlusterFS 三节点集群部署指南(Heketi 管理模式)

前言:随着信息技术的飞速发展,数据量呈爆炸式增长,传统的集中式存储系统已经难以满足现代应用对存储容量、性能和可靠性的苛刻需求。分布式存储技术应运而生,而 GlusterFS 作为其中的杰出代表,凭借其简单却强大的架构设计,成为了存储领域的一颗新星。 GlusterFS 的魅力不…

性价比拉满!最新的ISP图像处理方案来啦,基于瑞芯微RK3562J全国产工业平台!

今天为大家带来基于瑞芯微RK3562J工业平台的ISP图像处理方案,不仅低成本、低功耗,更能让图像清晰呈现!下面,一起来深入探究看它如何实现!ISP的作用与优势 何为ISP?全称为Image Signal Processor(图像信号处理器),其主要作用是处理前端图像传感器输出的信号,主要功能有…

什么是受管文件传输(MFT)?对企业有何价值和作用?

一、什么是受管文件传输(MFT)? 受管文件传输(Managed File Transfer, MFT),也可以称为“托管文件传输”,是一种专门用于安全、可靠地传输文件的解决方案。与传统的文件传输方式(如电子邮件、FTP)相比,MFT提供了更高的安全性、可管理性和自动化能力,能够满足企业对数…

FreeSWITCH 异常重启后会话快速恢复

FreeSWITCH 异常重启后会话快速恢复 配置 会话追踪sip_profiles/*.xml<param name="track-calls" value="true"/>(官方文档描述会有轻微性能影响) 存储恢复数据、修改数据库位置 重要 fs默认使用sqlite进行恢复数据的存储,也可以正常使用,但此处…

SpringSecurity5(10-动态权限管理)

Spring Security动态权限管理通过实时更新权限配置,支持按需调整用户权限,实现灵活的访问控制。结合注解、表达式等方式,能够动态加载和检查用户权限,无需重启系统,确保应用在复杂业务场景下的安全性与可扩展性,提升用户体验与管理效率。授权流程SpringSecurity 的授权流…

【2025年企业必备】这款跨网跨域传输软件 支持多达6种传输方式!

在全球化经济的推动下,企业的业务范围不断扩展,跨网跨域的数据传输需求日益增长。无论是跨国企业的内部协作,还是与合作伙伴之间的数据交换,高效、安全、可靠的跨网跨域传输软件已成为企业运营不可或缺的一部分。 传统的文件传输方式,如电子邮件附件、FTP服务器、甚至是物…

2025年-AI工具发展记录

时间:2025-03-06豆包: Kimi: 讯飞星火: 通义千问: DeepSeek: 总结:截止2025年3月6号,各类AI工具相较于2024年最大的变化时,都新增了自家的推理功能!这可以说是新年的一次重大更新!