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

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

zookeeper是干什么的

36氪企服點評小編
2022-01-14 18:08
4298次閱讀

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

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

所提供服務:

1、命名服務

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

2、配置服務

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

3、集群管理

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

4、分布式鎖

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

 

應用場景:

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

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

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

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

3、提供分布式鎖

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

4、集群管理

集群中保證數(shù)據(jù)的強一致性。無論客戶端讀取哪一臺機器的數(shù)據(jù),都會得到一致的數(shù)據(jù),因為zookeeper會將數(shù)據(jù)從主節(jié)點同步到其他節(jié)點。

[免責聲明]

文章標題: zookeeper是干什么的

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

消息通知
咨詢入駐
商務合作