Zookeeper的功能以及工作原理

1.ZooKeeper是什么?

ZooKeeper是一個分布式的骡和,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)樊销,是Google的Chubby一個開源的實現(xiàn),它是集群的管理者声诸,監(jiān)視著集群中各個節(jié)點的狀態(tài)根據(jù)節(jié)點提交的反饋進行下一步合理操作。最終退盯,將簡單易用的接口和性能高效彼乌、功能穩(wěn)定的系統(tǒng)提供給用戶。

2.ZooKeeper提供了什么渊迁?

1)文件系統(tǒng)

2)通知機制

3.Zookeeper文件系統(tǒng)

每個子目錄項如 NameService 都被稱作為znode慰照,和文件系統(tǒng)一樣,我們能夠自由的增加琉朽、刪除znode毒租,在一個znode下增加、刪除子znode箱叁,唯一的不同在于znode是可以存儲數(shù)據(jù)的墅垮。?

有四種類型的znode:?

1惕医、PERSISTENT-持久化目錄節(jié)點?

客戶端與zookeeper斷開連接后,該節(jié)點依舊存在?

2算色、PERSISTENT_SEQUENTIAL-持久化順序編號目錄節(jié)點?

客戶端與zookeeper斷開連接后抬伺,該節(jié)點依舊存在,只是Zookeeper給該節(jié)點名稱進行順序編號?

3灾梦、EPHEMERAL-臨時目錄節(jié)點?

客戶端與zookeeper斷開連接后峡钓,該節(jié)點被刪除?

4、EPHEMERAL_SEQUENTIAL-臨時順序編號目錄節(jié)點?

客戶端與zookeeper斷開連接后若河,該節(jié)點被刪除能岩,只是Zookeeper給該節(jié)點名稱進行順序編號?


4.Zookeeper通知機制

客戶端注冊監(jiān)聽它關(guān)心的目錄節(jié)點,當目錄節(jié)點發(fā)生變化(數(shù)據(jù)改變萧福、被刪除拉鹃、子目錄節(jié)點增加刪除)時,zookeeper會通知客戶端统锤。



5.Zookeeper能做什么毛俏?

1.命名服務(wù)? ?2.配置管理? ?3.集群管理? ?4.分布式鎖??5.隊列管理

6.Zookeeper命名服務(wù)

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

7.Zookeeper的配置管理

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


8.Zookeeper集群管理

所謂集群管理無在乎兩點:是否有機器退出和加入、選舉master钾麸。?

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

新機器加入也是類似知态,所有機器收到通知:新兄弟目錄加入捷兰,highcount又有了,對于第二點肴甸,我們稍微改變一下寂殉,所有機器創(chuàng)建臨時順序編號目錄節(jié)點,每次選取編號最小的機器作為master就好原在。


9.Zookeeper分布式鎖

有了zookeeper的一致性文件系統(tǒng)友扰,鎖的問題變得容易。鎖服務(wù)可以分為兩類庶柿,一個是保持獨占村怪,另一個是控制時序。?

對于第一類浮庐,我們將zookeeper上的一個znode看作是一把鎖甚负,通過createznode的方式來實現(xiàn)。所有客戶端都去創(chuàng)建 /distribute_lock 節(jié)點审残,最終成功創(chuàng)建的那個客戶端也即擁有了這把鎖梭域。用完刪除掉自己創(chuàng)建的distribute_lock 節(jié)點就釋放出鎖。?

對于第二類搅轿, /distribute_lock 已經(jīng)預先存在病涨,所有客戶端在它下面創(chuàng)建臨時順序編號目錄節(jié)點,和選master一樣璧坟,編號最小的獲得鎖既穆,用完刪除,依次方便雀鹃。

10.Zookeeper隊列管理

兩種類型的隊列:

1幻工、同步隊列,當一個隊列的成員都聚齊時黎茎,這個隊列才可用囊颅,否則一直等待所有成員到達。?

2傅瞻、隊列按照 FIFO 方式進行入隊和出隊操作迁酸。?

第一類,在約定目錄下創(chuàng)建臨時目錄節(jié)點俭正,監(jiān)聽節(jié)點數(shù)目是否是我們要求的數(shù)目。?

第二類焙畔,和分布式鎖服務(wù)中的控制時序場景基本原理一致掸读,入列有編號,出列按編號。



11.分布式與數(shù)據(jù)復制?

Zookeeper作為一個集群提供一致的數(shù)據(jù)服務(wù)儿惫,自然澡罚,它要在所有機器間做數(shù)據(jù)復制。數(shù)據(jù)復制的好處:?

1肾请、容錯:一個節(jié)點出錯留搔,不致于讓整個系統(tǒng)停止工作,別的節(jié)點可以接管它的工作铛铁;?

2隔显、提高系統(tǒng)的擴展能力 :把負載分布到多個節(jié)點上,或者增加節(jié)點來提高系統(tǒng)的負載能力饵逐;?

3括眠、提高性能:讓客戶端本地訪問就近的節(jié)點,提高用戶訪問速度倍权。?

從客戶端讀寫訪問的透明度來看掷豺,數(shù)據(jù)復制集群系統(tǒng)分下面兩種:?

1、寫主(WriteMaster) :對數(shù)據(jù)的修改提交給指定的節(jié)點薄声。讀無此限制当船,可以讀取任何一個節(jié)點。這種情況下客戶端需要對讀與寫進行區(qū)別默辨,俗稱讀寫分離德频;?

2、寫任意(Write Any):對數(shù)據(jù)的修改可提交給任意的節(jié)點廓奕,跟讀一樣抱婉。這種情況下,客戶端對集群節(jié)點的角色與變化透明桌粉。

對zookeeper來說蒸绩,它采用的方式是寫任意。通過增加機器铃肯,它的讀吞吐能力和響應(yīng)能力擴展性非常好患亿,而寫,隨著機器的增多吞吐能力肯定下降(這也是它建立observer的原因)押逼,而響應(yīng)能力則取決于具體實現(xiàn)方式步藕,是延遲復制保持最終一致性,還是立即復制快速響應(yīng)挑格。





詳細查看咙冗,地址

http://www.cnblogs.com/felixzh/p/5869212.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市漂彤,隨后出現(xiàn)的幾起案子雾消,更是在濱河造成了極大的恐慌灾搏,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件立润,死亡現(xiàn)場離奇詭異狂窑,居然都是意外死亡,警方通過查閱死者的電腦和手機桑腮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門泉哈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人破讨,你說我怎么就攤上這事丛晦。” “怎么了添忘?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵采呐,是天一觀的道長。 經(jīng)常有香客問我搁骑,道長斧吐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任仲器,我火速辦了婚禮煤率,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乏冀。我一直安慰自己蝶糯,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布辆沦。 她就那樣靜靜地躺著昼捍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肢扯。 梳的紋絲不亂的頭發(fā)上妒茬,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音蔚晨,去河邊找鬼乍钻。 笑死,一個胖子當著我的面吹牛铭腕,可吹牛的內(nèi)容都是我干的银择。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼累舷,長吁一口氣:“原來是場噩夢啊……” “哼浩考!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起被盈,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤怀挠,失蹤者是張志新(化名)和其女友劉穎析蝴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绿淋,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年尝盼,在試婚紗的時候發(fā)現(xiàn)自己被綠了吞滞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡盾沫,死狀恐怖裁赠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赴精,我是刑警寧澤佩捞,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蕾哟,受9級特大地震影響一忱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谭确,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一帘营、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逐哈,春花似錦芬迄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肠骆,卻和暖如春算途,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哗戈。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工郊艘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唯咬。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓纱注,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胆胰。 傳聞我的和親對象是個殘疾皇子狞贱,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容