Kafka 3.0.0 釋出了:

主要更新如下:
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 版本如下:
從官網看,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 了:
不過到現在還不是很成熟,目前還不建議用在生産環境,官方也隻是建議在開發環境進行試用。
Kafka 一向以性能著稱,還要額外維護一個重量級的 Zookeeper 元件,确實也沒有必要,是以就自己搞出了 KRaft 機制,讓自己變得更輕量,也可以帶來更優的性能。
是以,在未來的版本中,Zookeeper 也會消失在 Kafka 的長河裡……
總結下,可能大家覺得,很多知識,還沒開始學,就要被淘汰了,永遠跟不上技術的步伐。。。
是的,很多東西,我們雖然不學,但也要知道,也就是技術的廣度,如果現在面試官問你 Kafka 的上司選舉機制是怎樣的,你還隻會說 Zookeeper,而不知道 KRaft 機制的存在,那面試官可能就覺得你對技術的敏銳能力不高了。
是以說,我們不能每天重複着重複 CRUD 搬磚勞動,有時間,閑下來,也要時刻保持對技術的渴望,不但要追求深度,也要追求廣度,這樣不僅是在職場,還是在面試戰場,都能讓你遊刃有餘。
好了,今天的分享就到這裡了,後面棧長會分享更多好玩的 Java 技術和最新的技術資訊,關注公衆号Java技術棧第一時間推送,我也将主流 Kafka 面試題和參考答案都整理好了,在公衆号背景回複關鍵字 "面試" 進行刷題。
最後,覺得我的文章對你用收獲的話,動動小手,給個在看、轉發,原創不易,棧長需要你的鼓勵。