臥槽!Kafka 宣佈棄用 Java 8。。

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 面試題和參考答案都整理好了,在公衆號後臺回覆關鍵字 "面試" 進行刷題。

最後,覺得我的文章對你用收穫的話,動動小手,給個在看、轉發,原創不易,棧長需要你的鼓勵。

版權聲明: 本文系公衆號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請註明出處,抄襲者一律舉報+投訴,並保留追究其法律責任的權利。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2021最新版)

2.別在再滿屏的 if/ else 了,試試策略模式,真香!!

3.臥槽!Java 中的 xx ≠ null 是什麼新語法?

4.Spring Boot 2.5 重磅發佈,黑暗模式太炸了!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章