Kafka 2.8.0發(fā)布,與ZooKeeper正式分手!
平時(shí)關(guān)注 Kafka 的小伙伴要注意了,2021年4月19日,Kafka 2.8.0正式發(fā)布!
這次升級(jí)包括了很多重要的改動(dòng),其中最引人矚目的就是kafka通過(guò)自我管理的仲裁來(lái)替代ZooKeeper,通俗的說(shuō),Kafka將不再需要ZooKeeper,正式分手!
其實(shí)早在19年,就有人在社區(qū)中提出要移除Kafka對(duì)Zookeeper依賴的想法,當(dāng)時(shí)被視為幾乎不可能,但隨著眾人齊心協(xié)力躊躇滿志,竟然真的一步一步逐漸實(shí)現(xiàn)了。
2.8.0版本將是第一個(gè)不需要ZooKeeper就可以運(yùn)行Kafka的版本,而這也被稱為Kafka Raft Metadata mode(Kafka Raft 元數(shù)據(jù)模式),或許就是一個(gè)會(huì)被后人銘記的版本。
可能有一些剛接觸Kafka的小伙伴還不明白這到底代表著什么。
Kafka的一大優(yōu)點(diǎn)就是能夠提供高效率和吞吐量,對(duì)先前剛接觸的小伙伴來(lái)說(shuō),提交日志的底層實(shí)現(xiàn)往往是需要學(xué)習(xí)的第一個(gè)任務(wù)。
Kafka 的代碼庫(kù)中還有很大一部分是負(fù)責(zé)在多個(gè)集群中安排日志、分配領(lǐng)導(dǎo)權(quán)、處理故障等。這使的 Kafka 成為一個(gè)可靠和可信的分布式系統(tǒng)。而ZooKeeper就是分布式代碼工作的關(guān)鍵。在以往的版本中,ZooKeeper 提供了權(quán)威的元數(shù)據(jù)存儲(chǔ),這些元數(shù)據(jù)存儲(chǔ)了系統(tǒng)中最重要的東西,例如分區(qū)可以存在哪里,哪個(gè)組件是主導(dǎo)等等等等。
但不管怎么樣,ZooKeeper 是一個(gè)基于一致日志的特殊文件系統(tǒng)/觸發(fā)器API。而Kafka 是一個(gè)建立在一致日志之上的發(fā)布/訂閱系統(tǒng)。
這個(gè)無(wú)法改變的現(xiàn)實(shí)使得實(shí)際使用中,運(yùn)維人員需要跨兩個(gè)日志實(shí)現(xiàn)、兩個(gè)網(wǎng)絡(luò)層和兩個(gè)安全實(shí)現(xiàn)(每個(gè)實(shí)現(xiàn)都有不同的工具和監(jiān)視鉤子)對(duì)通信和性能進(jìn)行調(diào)優(yōu)、配置、監(jiān)視、保護(hù)和評(píng)估,這就使得系統(tǒng)變得相當(dāng)復(fù)雜!
所以和ZooKeeper的友好分手 短期可能會(huì)有陣痛,但對(duì)于Kafka的長(zhǎng)遠(yuǎn)發(fā)展利大于弊。
除了和ZooKeeper分開(kāi),本次更新還新增了三個(gè)功能:
- [KAFKA-10500]-添加API以啟動(dòng)和停止流線程
- [KAFKA-10700]-支持使用SASL_SSL偵聽(tīng)器實(shí)現(xiàn)相互TLS身份驗(yàn)證
- [KAFKA-10749]-通過(guò)連接速率添加IP限制
而優(yōu)化及修改bug更是多達(dá)百個(gè)。
一些重要的更新例如:
- [KAFKA-5488]-KStream.branch不應(yīng)返回必須通過(guò)已知索引訪問(wèn)的流數(shù)組
- [KAFKA-6687]-允許多次閱讀主題
- [KAFKA-6943]-如果任何線程崩潰,或者如果所有線程崩潰,可以選擇干凈地關(guān)閉KS
- [KAFKA-9023]-生產(chǎn)者網(wǎng)絡(luò)異常響應(yīng)應(yīng)記錄更多信息
- [KAFKA-12327]-刪除CompressionType中的MethodHandle用法
- [KAFKA-12365]-kip-500代理/控制器不支持塊API(目前)
- [KAFKA-12394]-考慮主題id存在和授權(quán)錯(cuò)誤
- [KAFKA-4748]-需要一種方法同時(shí)關(guān)閉Streams應(yīng)用程序中的所有工作進(jìn)程
- [KAFKA-10722]-即使不需要,也使用時(shí)間戳存儲(chǔ)
- [KAFKA-10723]-LogManager在關(guān)閉期間泄漏內(nèi)部線程池活動(dòng)
如果對(duì)具體的更新內(nèi)容感興趣,可以直接登陸官網(wǎng)進(jìn)行查看:
https://downloads.apache.org/kafka/2.8.0/RELEASE_NOTES.html
原文鏈接:https://mp.weixin.qq.com/s/u79s0Hq3dkXNo00HPTzgdw