為什么 Apache Kafka 要放棄 ZooKeeper ?
譯文對(duì)于領(lǐng)先的分布式事件流平臺(tái)Apache Kafka的用戶(hù)來(lái)說(shuō),變化即將到來(lái)。Kafka的元數(shù)據(jù)管理工具Apache ZooKeeper將很快被淘汰,取而代之的是內(nèi)部技術(shù)。
Apache Kafka項(xiàng)目管理委員會(huì)成員、利用Kafka的Confluent公司工程師Colin McCabe解釋了這一變化的原因。他說(shuō),ZooKeeper存儲(chǔ)持久的集群元數(shù)據(jù),處理維護(hù)動(dòng)態(tài)配置和主題,以及主題內(nèi)的分區(qū)。但ZooKeeper增加了一個(gè)額外的管理層次。McCabe說(shuō),在Kafka內(nèi)部存儲(chǔ)元數(shù)據(jù)將使管理更容易,并能更好地保證版本等問(wèn)題。
Kafka Raft,即KRaft,是一種內(nèi)部管理元數(shù)據(jù)的協(xié)議,將取代ZooKeeper。在KRaft模式下,Kafka元數(shù)據(jù)將被存儲(chǔ)在一個(gè)分布式日志中。McCabe說(shuō),可擴(kuò)展性將是主要的好處,但管理也會(huì)改善。Kafka用戶(hù)將不再需要部署一個(gè)單獨(dú)的系統(tǒng)來(lái)管理他們的Kafka集群。
目前還不清楚ZooKeeper具體何時(shí)退役,但預(yù)計(jì)在未來(lái)一兩周內(nèi)會(huì)對(duì)時(shí)間表進(jìn)行投票。目前的建議是在即將發(fā)布的Kafka 3.3中宣布KRaft普遍可用。ZooKeeper將在之后的版本中被廢棄,并在Kafka 4.0中移除。
Kafka 3.3預(yù)計(jì)在8月發(fā)布,將包括ZooKeeper和KRaft兩個(gè)選項(xiàng)。ZooKeeper的終結(jié)日期還未確定。"McCabe說(shuō):"KRaft模式很快就會(huì)進(jìn)入生產(chǎn)階段,今年很快。"這將是該項(xiàng)目向前邁出的一大步。"
目前,Kafka開(kāi)發(fā)人員正在努力實(shí)現(xiàn)KRaft和ZooKeeper之間的全功能對(duì)等,據(jù)說(shuō)這一點(diǎn)正在接近。KRaft模式實(shí)際上從2021年4月發(fā)布的Kafka 2.8開(kāi)始就有了,但不是生產(chǎn)就緒狀態(tài);Kafka 3.3將是第一個(gè)生產(chǎn)就緒版本。對(duì)于習(xí)慣了ZooKeeper的開(kāi)發(fā)者來(lái)說(shuō),McCabe預(yù)計(jì)在轉(zhuǎn)移到KRaft時(shí)不會(huì)有陡峭的學(xué)習(xí)曲線。對(duì)開(kāi)發(fā)者來(lái)說(shuō),同樣的API被支持,但操作者可能有一些東西需要學(xué)習(xí)。"我們的希望是,新的管理員實(shí)際上會(huì)發(fā)現(xiàn)這更容易,而現(xiàn)有的管理員會(huì)發(fā)現(xiàn)過(guò)渡是可控的。"
Confluent認(rèn)為ZooKeeper的廢棄是Kafka社區(qū)的一個(gè)重要舉措,Kafka的聯(lián)合創(chuàng)建者和Confluent的聯(lián)合創(chuàng)始人Jun Rao(饒軍)說(shuō)。"它使部署/操作變得更加簡(jiǎn)單,并且由于更有效地處理元數(shù)據(jù),可擴(kuò)展性提高了10倍。我們很高興與社區(qū)合作開(kāi)展這項(xiàng)工作,并希望它很快就能投入生產(chǎn)。"
原標(biāo)題:??Why Apache Kafka is dropping ZooKeeper??
原作者:Paul Krill