臥槽!Kafka 宣布棄用 Java 8。。
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)
國(guó)慶了,國(guó)慶微信頭像必須安排上,舒服~

生成方式:
Kafka 3.0.0 發(fā)布了:

主要更新如下:
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
第一條就是宣布棄用對(duì) Java 8 和 Scala 2.12 的支持!??!
在 Kafka 3.0.0 中,Kafka 項(xiàng)目中的所有組件都已棄用對(duì) Java 8、Scala 2.12 的支持,宣布棄用,但 3.0.0 還能用,這次宣布只是給用戶一個(gè)調(diào)整的時(shí)間,到了 Kafka 4.0,Java 8、Scala 2.12 將將正式取消支持。
其實(shí),其他一些中間件也早有停止對(duì) Java 8 的支持,選擇 Java 11 作為最低支持版本,但 ?Kafka,這可能是自 Java 17 發(fā)布以來,也就是近半月時(shí)間,官宣棄用 Java 8 打響的第一槍。。
Java 8 雖然有點(diǎn)老了,但依然是現(xiàn)在市場(chǎng)上用的最多的版本,雖然有些中間件不再支持 Java 8 了,但實(shí)際開發(fā)工作并不受影響,Java 8+ 系列教程我也寫了一堆了,關(guān)注公眾號(hào)Java技術(shù)棧在菜單欄中進(jìn)行閱讀吧。
Kafka 目前支持的 Java 版本如下:

從官網(wǎng)看,Kafka 目前支持兩個(gè) LTS 版本( Java 8 和 Java 11)
如果啟用 TLS,那么 Java 11 的性能將得到顯著提升,所以官方也強(qiáng)烈推薦大家使用 Java 11。
Java 11 是比 Java 8 更新一代的長(zhǎng)期支持版本,它還包括許多其他的性能改進(jìn),比如:G1 垃圾收集器、CRC32C、字符串壓縮、Thread-Local ?握手機(jī)制 等等,另外從安全的角度考慮,建議使用較為新一點(diǎn)的安全版本,防止老版本的安全漏洞。
現(xiàn)在隨著 Java 17 的發(fā)布及免費(fèi),Java 17 還是史上最快的 JDK,相信在不久的時(shí)間,Kafka 對(duì)于 Java 17 的支持也會(huì)安排上。在多個(gè) Java 版本上進(jìn)行開發(fā)、編譯和測(cè)試,對(duì)于 Kafka 團(tuán)隊(duì)來說肯定是一筆不小的維護(hù)成本,所以,Kafka 還有什么理由繼續(xù)保留 Java 8 呢?
Java 11/ Java 17 可能是更香的選擇!
此外,Kafka 3.0 還改進(jìn)了 KRaft 共識(shí)算法(Raft 的變種)
這個(gè) Kafka 內(nèi)置的 KRaft 共識(shí)機(jī)制,是用來取代 Apache ZooKeeper 的,早在很久之前(Kafka 2.8.0) Kafka 就宣布替換 ?Zookeeper 了:

不過到現(xiàn)在還不是很成熟,目前還不建議用在生產(chǎn)環(huán)境,官方也只是建議在開發(fā)環(huán)境進(jìn)行試用。
Kafka 一向以性能著稱,還要額外維護(hù)一個(gè)重量級(jí)的 Zookeeper 組件,確實(shí)也沒有必要,所以就自己搞出了 KRaft 機(jī)制,讓自己變得更輕量,也可以帶來更優(yōu)的性能。
所以,在未來的版本中,Zookeeper 也會(huì)消失在 Kafka 的長(zhǎng)河里……
總結(jié)下,可能大家覺得,很多知識(shí),還沒開始學(xué),就要被淘汰了,永遠(yuǎn)跟不上技術(shù)的步伐。。。
是的,很多東西,我們雖然不學(xué),但也要知道,也就是技術(shù)的廣度,如果現(xiàn)在面試官問你 Kafka 的領(lǐng)導(dǎo)選舉機(jī)制是怎樣的,你還只會(huì)說 Zookeeper,而不知道 KRaft 機(jī)制的存在,那面試官可能就覺得你對(duì)技術(shù)的敏銳能力不高了。
所以說,我們不能每天重復(fù)著重復(fù) CRUD 搬磚勞動(dòng),有時(shí)間,閑下來,也要時(shí)刻保持對(duì)技術(shù)的渴望,不但要追求深度,也要追求廣度,這樣不僅是在職場(chǎng),還是在面試戰(zhàn)場(chǎng),都能讓你游刃有余。
好了,今天的分享就到這里了,后面棧長(zhǎng)會(huì)分享更多好玩的 Java 技術(shù)和最新的技術(shù)資訊,關(guān)注公眾號(hào)Java技術(shù)棧第一時(shí)間推送,我也將主流 Kafka 面試題和參考答案都整理好了,在公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字 "面試" 進(jìn)行刷題。
最后,覺得我的文章對(duì)你用收獲的話,動(dòng)動(dòng)小手,給個(gè)在看、轉(zhuǎn)發(fā),原創(chuàng)不易,棧長(zhǎng)需要你的鼓勵(lì)。
版權(quán)聲明: 本文系公眾號(hào) "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請(qǐng)注明出處,抄襲者一律舉報(bào)+投訴,并保留追究其法律責(zé)任的權(quán)利。






關(guān)注Java技術(shù)棧看更多干貨


