當(dāng)前位置:首頁 > 公眾號精選 > 程序員小灰
[導(dǎo)讀]本文轉(zhuǎn)載自公眾號Java技術(shù)棧Kafka3.0.0發(fā)布了:主要更新如下:ThedeprecationofsupportforJava8andScala2.12KafkaRaftsupportforsnapshotsofthemetadatatopicandotherimprove...

本文轉(zhuǎn)載自公眾號 Java技術(shù)棧

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
第一條就是宣布棄用對 Java 8 和 Scala 2.12 的支持?。?!

在 Kafka 3.0.0 中,Kafka 項目中的所有組件都已棄用對 Java 8、Scala 2.12 的支持,宣布棄用,但 3.0.0 還能用,這次宣布只是給用戶一個調(diào)整的時間,到了 Kafka 4.0,Java 8、Scala 2.12 將將正式取消支持。

其實,其他一些中間件也早有停止對 Java 8 的支持,選擇 Java 11 作為最低支持版本,但 ?Kafka,這可能是自 Java 17 發(fā)布以來,也就是近半月時間,官宣棄用 Java 8 打響的第一槍。。

Java 8 雖然有點老了,但依然是現(xiàn)在市場上用的最多的版本,雖然有些中間件不再支持 Java 8 了,但實際開發(fā)工作并不受影響,Java 8 系列教程我也寫了一堆了,關(guān)注公眾號Java技術(shù)棧在菜單欄中進行閱讀吧。

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

從官網(wǎng)看,Kafka 目前支持兩個 LTS 版本( Java 8 和 Java 11

如果啟用 TLS,那么 Java 11 的性能將得到顯著提升,所以官方也強烈推薦大家使用 Java 11。

Java 11 是比 Java 8 更新一代的長期支持版本,它還包括許多其他的性能改進,比如:G1 垃圾收集器、CRC32C、字符串壓縮、Thread-Local ?握手機制 等等,另外從安全的角度考慮,建議使用較為新一點的安全版本,防止老版本的安全漏洞。

現(xiàn)在隨著 Java 17 的發(fā)布及免費,Java 17 還是史上最快的 JDK,相信在不久的時間,Kafka 對于 Java 17 的支持也會安排上。在多個 Java 版本上進行開發(fā)、編譯和測試,對于 Kafka 團隊來說肯定是一筆不小的維護成本,所以,Kafka 還有什么理由繼續(xù)保留 Java 8 呢?

Java 11/ Java 17 可能是更香的選擇!

此外,Kafka 3.0 還改進了 KRaft 共識算法(Raft 的變種)

這個 Kafka 內(nèi)置的 KRaft 共識機制,是用來取代 Apache ZooKeeper 的,早在很久之前(Kafka 2.8.0) Kafka 就宣布替換 ?Zookeeper 了:

不過到現(xiàn)在還不是很成熟,目前還不建議用在生產(chǎn)環(huán)境,官方也只是建議在開發(fā)環(huán)境進行試用。

Kafka 一向以性能著稱,還要額外維護一個重量級的 Zookeeper 組件,確實也沒有必要,所以就自己搞出了 KRaft 機制,讓自己變得更輕量,也可以帶來更優(yōu)的性能。

所以,在未來的版本中,Zookeeper 也會消失在 Kafka 的長河里……

總結(jié)下,可能大家覺得,很多知識,還沒開始學(xué),就要被淘汰了,永遠(yuǎn)跟不上技術(shù)的步伐。。。

是的,很多東西,我們雖然不學(xué),但也要知道,也就是技術(shù)的廣度,如果現(xiàn)在面試官問你 Kafka 的領(lǐng)導(dǎo)選舉機制是怎樣的,你還只會說 Zookeeper,而不知道 KRaft 機制的存在,那面試官可能就覺得你對技術(shù)的敏銳能力不高了。

所以說,我們不能每天重復(fù)著重復(fù) CRUD 搬磚勞動,有時間,閑下來,也要時刻保持對技術(shù)的渴望,不但要追求深度,也要追求廣度,這樣不僅是在職場,還是在面試戰(zhàn)場,都能讓你游刃有余。

好了,今天的分享就到這里了,后面我會分享更多好玩的 Java 技術(shù)和最新的技術(shù)資訊,關(guān)注本公眾號第一時間推送。

最后,覺得我的文章對你用收獲的話,動動小手,給個在看、轉(zhuǎn)發(fā),原創(chuàng)不易,我需要你的鼓勵。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉