Kafka 宣布弃用 Java 8。。

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Kafka 3.0.0 发布了:

Kafka 3.0.0 发布了:


image.png


主要更新如下:


The deprecation of support for Java 8 and Scala 2.12

Kafka Raft support for snapshots of the metadata topic and other improvements in the self-managed quorum

Stronger delivery guarantees for the Kafka producer enabled by default

Deprecation of message formats v0 and v1

Optimizations in OffsetFetch and FindCoordinator requests

More flexible Mirror Maker 2 configuration and deprecation of Mirror Maker 1

Ability to restart a connector's tasks on a single call in Kafka Connect

Connector log contexts and connector client overrides are now enabled by default

Enhanced semantics for timestamp synchronization in Kafka Streams

Revamped public API for Stream's TaskId

Default serde becomes null in Kafka

第一条就是宣布弃用对 Java 8 和 Scala 2.12 的支持!!!


在 Kafka 3.0.0 中,Kafka 项目中的所有组件都已弃用对 Java 8、Scala 2.12 的支持,宣布弃用,但 3.0.0 还能用,这次宣布只是给用户一个调整的时间,到了 Kafka 4.0,Java 8、Scala 2.12 将将正式取消支持。


其实,其他一些中间件也早有停止对 Java 8 的支持,选择 Java 11 作为最低支持版本,但 Kafka,这可能是自 Java 17 发布以来,也就是近半月时间,官宣弃用 Java 8 打响的第一枪。。


Java 8 虽然有点老了,但依然是现在市场上用的最多的版本,虽然有些中间件不再支持 Java 8 了,但实际开发工作并不受影响,Java 8+ 系列教程我也写了一堆了,关注公众号Java技术栈在菜单栏中进行阅读吧。


Kafka 目前支持的 Java 版本如下:


image.png


从官网看,Kafka 目前支持两个 LTS 版本( Java 8 和 Java 11)


如果启用 TLS,那么 Java 11 的性能将得到显著提升,所以官方也强烈推荐大家使用 Java 11。


Java 11 是比 Java 8 更新一代的长期支持版本,它还包括许多其他的性能改进,比如:G1 垃圾收集器、CRC32C、字符串压缩、Thread-Local 握手机制 等等,另外从安全的角度考虑,建议使用较为新一点的安全版本,防止老版本的安全漏洞。


现在随着 Java 17 的发布及免费,Java 17 还是史上最快的 JDK,相信在不久的时间,Kafka 对于 Java 17 的支持也会安排上。在多个 Java 版本上进行开发、编译和测试,对于 Kafka 团队来说肯定是一笔不小的维护成本,所以,Kafka 还有什么理由继续保留 Java 8 呢?


Java 11/ Java 17 可能是更香的选择!


此外,Kafka 3.0 还改进了 KRaft 共识算法(Raft 的变种)


这个 Kafka 内置的 KRaft 共识机制,是用来取代 Apache ZooKeeper 的,早在很久之前(Kafka 2.8.0) Kafka 就宣布替换 Zookeeper 了:


image.png


不过到现在还不是很成熟,目前还不建议用在生产环境,官方也只是建议在开发环境进行试用。


Kafka 一向以性能著称,还要额外维护一个重量级的 Zookeeper 组件,确实也没有必要,所以就自己搞出了 KRaft 机制,让自己变得更轻量,也可以带来更优的性能。


所以,在未来的版本中,Zookeeper 也会消失在 Kafka 的长河里……


总结下,可能大家觉得,很多知识,还没开始学,就要被淘汰了,永远跟不上技术的步伐。。。


是的,很多东西,我们虽然不学,但也要知道,也就是技术的广度,如果现在面试官问你 Kafka 的领导选举机制是怎样的,你还只会说 Zookeeper,而不知道 KRaft 机制的存在,那面试官可能就觉得你对技术的敏锐能力不高了。


所以说,我们不能每天重复着重复 CRUD 搬砖劳动,有时间,闲下来,也要时刻保持对技术的渴望,不但要追求深度,也要追求广度,这样不仅是在职场,还是在面试战场,都能让你游刃有余。


好了,今天的分享就到这里了,后面栈长会分享更多好玩的 Java 技术和最新的技术资讯,关注公众号Java技术栈第一时间推送,我也将主流 Kafka 面试题和参考答案都整理好了,在公众号后台回复关键字 "面试" 进行刷题。


最后,觉得我的文章对你用收获的话,动动小手,给个在看、转发,原创不易,栈长需要你的鼓励。


相关文章
|
1天前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【4月更文挑战第17天】本文介绍了在Java环境下使用Apache Kafka进行消息队列处理的方法。Kafka是一个分布式流处理平台,采用发布/订阅模型,支持高效的消息生产和消费。文章详细讲解了Kafka的核心概念,包括主题、生产者和消费者,以及消息的存储和消费流程。此外,还展示了Java代码示例,说明如何创建生产者和消费者。最后,讨论了在高并发场景下的优化策略,如分区、消息压缩和批处理。通过理解和应用这些策略,可以构建高性能的消息系统。
|
1天前
|
消息中间件 缓存 Java
Kafka Consumer java api 配置
Kafka Consumer java api 配置
|
1天前
|
NoSQL Java 关系型数据库
使用Kafka实现Java异步更新通知解决Redis与MySQL数据不一致
使用Kafka实现Java异步更新通知解决Redis与MySQL数据不一致
46 0
|
1天前
|
消息中间件 供应链 Java
Kafka的发布-订阅功能: Java实现与应用场景解析
Kafka的发布-订阅功能: Java实现与应用场景解析
77 0
|
1天前
|
消息中间件 Java Kafka
使用Java编写代码安装Kafka及启动Zookeeper和Kafka
如何使用Java编写代码安装Kafka及启动Zookeeper和Kafka?其中包括安装前准备、修改配置文件、创建日志目录和数据目录等步骤,请提供详细实现过程。
44 0
|
消息中间件 存储 缓存
Kafka 3.0重磅发布,弃用 Java 8 的支持!
Kafka 3.0重磅发布,弃用 Java 8 的支持!
961 0
Kafka 3.0重磅发布,弃用 Java 8 的支持!
|
1天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
1天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第15天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将通过实例分析,理解线程安全的重要性,并学习如何通过各种技术和策略来实现它。同时,我们也将探讨如何在保证线程安全的同时,提高程序的性能。
|
1天前
|
消息中间件 并行计算 Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第15天】 在现代计算机编程中,多线程是一个复杂但必不可少的概念。特别是在Java这种广泛使用的编程语言中,理解并掌握多线程编程是每个开发者必备的技能。本文将深入探讨Java中的多线程编程,从基础概念到实际应用场景,为读者提供全面的理论支持和实践指导。
|
1天前
|
Java 程序员 调度
Java中的多线程编程:从理论到实践
【5月更文挑战第14天】在现代计算机技术中,多线程编程是一个重要的概念。它允许多个线程并行执行,从而提高程序的运行效率。本文将从理论和实践两个角度深入探讨Java中的多线程编程,包括线程的基本概念、创建和控制线程的方法,以及如何处理线程同步和通信问题。