国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> zookeeper是干什么的 >

zookeeper是干什么的

36氪企服點(diǎn)評小編
2022-01-14 18:08
4314次閱讀

ZooKeeper 是 Apache 的一個頂級項(xiàng)目,為分布式應(yīng)用提供高效、高可用的分布式協(xié)調(diào)服務(wù)。它主要提供了諸如命名服務(wù)、配置服務(wù)、集群管理、分布式鎖等分布式基礎(chǔ)服務(wù)。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的穩(wěn)定性,被廣泛地應(yīng)用于諸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系統(tǒng)中。且zookeeper的應(yīng)用場景有:1、統(tǒng)一配置文件管理;2、服務(wù)注冊和發(fā)現(xiàn);3、提供分布式鎖;4、集群管理。

zookeeper是干什么的zookeeper是干什么的

所提供服務(wù):

1、命名服務(wù)

在zookeeper的文件系統(tǒng)里創(chuàng)建一個目錄,即有唯一的path。在我們使用tborg無法確定上游程序的部署機(jī)器時即可與下游程序約定好path,通過path即可實(shí)現(xiàn)互相探索發(fā)現(xiàn)。

2、配置服務(wù)

程序是需要配置的,如果程序分散部署在多臺機(jī)器上,要逐個改變配置就變得困難。現(xiàn)在把這些配置全部放到zookeeper上去,保存在 Zookeeper 的某個目錄節(jié)點(diǎn)中,然后所有相關(guān)應(yīng)用程序?qū)@個目錄節(jié)點(diǎn)進(jìn)行監(jiān)聽,一旦配置信息發(fā)生變化,每個應(yīng)用程序就會收到 Zookeeper 的通知,然后從 Zookeeper 獲取新的配置信息應(yīng)用到系統(tǒng)中就好。

3、集群管理

所有機(jī)器約定在父目錄GroupMembers下創(chuàng)建臨時目錄節(jié)點(diǎn),然后監(jiān)聽父目錄節(jié)點(diǎn)的子節(jié)點(diǎn)變化消息。一旦有機(jī)器掛掉,該機(jī)器與 zookeeper的連接斷開,其所創(chuàng)建的臨時目錄節(jié)點(diǎn)被刪除,所有其他機(jī)器都收到通知:某個兄弟目錄被刪除,于是,所有人都知道了。

4、分布式鎖

鎖服務(wù)可以分為兩類,一個是保持獨(dú)占,另一個是控制時序。對于第一類,我們將zookeeper上的一個znode看作是一把鎖,通過createznode的方式來實(shí)現(xiàn)。所有客戶端都去創(chuàng)建 /distribute_lock 節(jié)點(diǎn),最終成功創(chuàng)建的那個客戶端也即擁有了這把鎖。廁所有言:來也沖沖,去也沖沖,用完刪除掉自己創(chuàng)建的distribute_lock 節(jié)點(diǎn)就釋放出鎖。對于第二類, /distribute_lock 已經(jīng)預(yù)先存在,所有客戶端在它下面創(chuàng)建臨時順序編號目錄節(jié)點(diǎn),和選master一樣,編號最小的獲得鎖,用完刪除,依次方便。

 

應(yīng)用場景:

1、統(tǒng)一配置文件管理

即只需要部署一臺服務(wù)器,則可以把相同的配置文件同步更新到其他所有服務(wù)器,此操作在云計(jì)算中應(yīng)用特別多。<a href="#watchconfig">查看詳細(xì) </a>

2、服務(wù)注冊和發(fā)現(xiàn)

類似消息隊(duì)列MQ,dubbo發(fā)布者會把數(shù)據(jù)存到znode中,訂閱者會讀取這個數(shù)據(jù)。如下圖所示,發(fā)布者發(fā)布數(shù)據(jù),訂閱者根據(jù)數(shù)據(jù)的變化進(jìn)行操作。利用 Znode 和 Watcher,可以實(shí)現(xiàn)分布式服務(wù)的注冊和發(fā)現(xiàn),最著名的應(yīng)用就是阿里的分布式 RPC 框架 Dubbo。

3、提供分布式鎖

分布式環(huán)境中不同進(jìn)程之間會爭奪資源,類似多線程中的鎖。下圖中多個服務(wù)器中的進(jìn)程要操作網(wǎng)盤中的文件,為了避免沖突,需要分布式鎖。雅虎研究員設(shè)計(jì) ZooKeeper 的初衷。利用 ZooKeeper 的臨時順序節(jié)點(diǎn),可以輕松實(shí)現(xiàn)分布式鎖。

4、集群管理

集群中保證數(shù)據(jù)的強(qiáng)一致性。無論客戶端讀取哪一臺機(jī)器的數(shù)據(jù),都會得到一致的數(shù)據(jù),因?yàn)閦ookeeper會將數(shù)據(jù)從主節(jié)點(diǎn)同步到其他節(jié)點(diǎn)。

[免責(zé)聲明]

文章標(biāo)題: zookeeper是干什么的

文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。

消息通知
咨詢?nèi)腭v
商務(wù)合作