分布式發(fā)布與訂閱系統(tǒng)Apache Kafka在即將發(fā)布的2.8版本,使用Kafka內(nèi)部的Quorum控制器來取代ZooKeeper,因此用戶第一次可在完全不需要ZooKeeper的情況下執(zhí)行Kafka,這不只節(jié)省運(yùn)算資源,并且也使得Kafka效能更好,還可支持規(guī)模更大的集群。
過去Apache ZooKeeper是Kafka這類分布式系統(tǒng)的關(guān)鍵,ZooKeeper扮演協(xié)調(diào)代理的角色,所有代理服務(wù)器啟動(dòng)時(shí),都會(huì)連接到Zookeeper進(jìn)行注冊(cè),當(dāng)代理狀態(tài)發(fā)生變化時(shí),Zookeeper也會(huì)儲(chǔ)存這些數(shù)據(jù),在過去,ZooKeeper是一個(gè)強(qiáng)大的工具,但是畢竟ZooKeeper是一個(gè)獨(dú)立的軟件,使得Kafka整個(gè)系統(tǒng)變得復(fù)雜,因此官方?jīng)Q定使用內(nèi)部Quorum控制器來取代ZooKeeper。
這項(xiàng)工作從去年4月開始,而現(xiàn)在這項(xiàng)工作取得部分成果,用戶將可以在2.8版本,在沒有ZooKeeper的情況下執(zhí)行Kafka,官方稱這項(xiàng)功能為Kafka Raft元數(shù)據(jù)模式(KRaft)。在KRaft模式,過去由Kafka控制器和ZooKeeper所操作的元數(shù)據(jù),將合并到這個(gè)新的Quorum控制器,并且在Kafka集群內(nèi)部執(zhí)行,當(dāng)然,如果使用者有特殊使用情境,Quorum控制器也可以在專用的硬件上執(zhí)行。
KRaft協(xié)定使用事件驅(qū)動(dòng)機(jī)制來追蹤整個(gè)集群的元數(shù)據(jù),過去必須依賴RPC來處理的任務(wù),現(xiàn)在受益于事件驅(qū)動(dòng)以及實(shí)際的日志傳輸,這些改變所帶來的好處,便是讓Kafka仍夠支持更多的分割。
過去Kafka因?yàn)閹е鳽ooKeeper,因此被認(rèn)為擁有笨重的基礎(chǔ)設(shè)施,而在移除ZooKeeper之后,Kafka更輕巧更適用于小規(guī)模工作負(fù)載,輕量級(jí)單體程序適合用于邊緣以及輕量級(jí)硬件解決方案。
值得注意的是,在搶先體驗(yàn)版中,有部分像是ACL、安全以及交易等功能都尚未支持,而且在KRaft模式下,也還不支持重新分配分割和JBOD,官方提到,這些功能會(huì)在今年稍晚的版本中提供,由于很多功能處于測試階段,不建議大家將其用于生產(chǎn)環(huán)境中。
參考:https://www.confluent.io/blog/kafka-without-zookeeper-a-sneak-peek/https://www.ithome.com.tw/news/143569
編輯:jq
-
控制器
+關(guān)注
關(guān)注
112文章
16361瀏覽量
178071 -
RPC
+關(guān)注
關(guān)注
0文章
111瀏覽量
11537 -
ACL
+關(guān)注
關(guān)注
0文章
61瀏覽量
11979 -
zookeeper
+關(guān)注
關(guān)注
0文章
33瀏覽量
3683
原文標(biāo)題:Kafka 2.8獨(dú)立運(yùn)行,不再需要ZooKeeper
文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論