Zookeeper

參考文章

是什么

  • 是一個分布式的,開放源碼的分布式應用程序協(xié)調(diào)服務(wù)雹顺。
  • 是集群的管理者句葵,監(jiān)視著集群中各個節(jié)點的狀態(tài)厕鹃。根據(jù)節(jié)點提交的反饋進行下一步合理的操作。
  • 最終笼呆,將簡單易用的接口和性能高效熊响,功能穩(wěn)定的系統(tǒng)提供給用戶

提供了什么

  • 文件系統(tǒng)
  • 通知機制

文件系統(tǒng)

[圖片上傳失敗...(image-48c60a-1534841583787)]

  • 每個子目錄項如 App1都被成為znode
  • 和文件系統(tǒng)一樣,能夠自由的增加 刪除znode
  • znode可以存儲數(shù)據(jù)

有四種類型的znode

  • 持久化目錄節(jié)點 PERSISTENT
    • 客戶端與zookeeper斷開連接后诗赌,該節(jié)點依然存在
  • 持久化順序目錄節(jié)點 PERSISTENT_SEQUENTIAL
    • 斷開后汗茄,該節(jié)點依然存在,只是zookeeper給該節(jié)點名稱進行順序編號
  • 臨時目錄節(jié)點 ephemeral
    • 斷開連接后铭若,節(jié)點被刪除
  • 臨時順序編號目錄節(jié)點
    • 斷開后洪碳,節(jié)點刪除。c創(chuàng)建的節(jié)點會自動按順序編號

通知機制

客戶端注冊監(jiān)聽它關(guān)心的目錄節(jié)點叼屠,當目錄節(jié)點發(fā)生變化時瞳腌,zookeeper會通知客戶端。

Watch

  • 一個watch事件是一個一次性的觸發(fā)器镜雨。
  • watcher event異步發(fā)送嫂侍。可能會存在,由于網(wǎng)絡(luò)延遲或其他因素導致挑宠,客戶端在不同的情況下收到監(jiān)聽事件菲盾。

能做什么

  • 命名服務(wù)
  • 配置管理
  • 集群管理
  • 分布式鎖
  • 隊列管理

命名服務(wù)

在zookeeper文件系統(tǒng)里創(chuàng)建一個目錄,即有統(tǒng)一的path

配置管理

如果程序分布在多臺機器上各淀,逐個配置很麻煩懒鉴。全部放到zookeeper上,然后監(jiān)聽某個目錄節(jié)點碎浇,一旦配置信息發(fā)生變化临谱,每個程序都會收到通知。
[圖片上傳失敗...(image-e8ba89-1534841583787)]

集群管理

主要是兩點

  • 機器的加入和退出

  • 選舉master
    [圖片上傳失敗...(image-4a87ab-1534841583787)]

  • 所有機器約定在group下創(chuàng)建臨時目錄節(jié)點奴璃,然后監(jiān)聽

  • 當有機器掛掉悉默,該機器與zookeeper斷開,該節(jié)點被刪除苟穆,其他機器都可以接到通知

  • 當有機器加入麦牺,也會收到通知。默認選取編號最小的機器作為master

分布式鎖

分為兩類

  1. 將znode看做一把鎖鞭缭,通過createznode方式實現(xiàn)剖膳,所有客戶端都去創(chuàng)建/pre_lock節(jié)點,誰成功創(chuàng)建岭辣,誰獲得鎖.
  2. /pre_lock預先存在吱晒,所有客戶端在它下面創(chuàng)建臨時順序目錄節(jié)點,編號最小的獲得鎖沦童。

工作原理

zookeeper的核心是原子廣播仑濒,這個機制保證了各個server之間的同步。實現(xiàn)這個機制的協(xié)議叫zab協(xié)議(ZooKeeper Atomic Broadcast )

zab協(xié)議有兩種模式:

  • 恢復模式(選主)
  • 廣播模式 (同步)

恢復模式

  • 當服務(wù)啟動或者領(lǐng)導者崩潰后偷遗,zab進入恢復模式
  • 當領(lǐng)導被選舉出來墩瞳,且大多數(shù)server完成了同步,恢復模式結(jié)束

為了保證事物順序一致性:

zookeeper采用了遞增的事物id號 64位

選主流程

zk的選舉有兩種 一種是基于basic paxos實現(xiàn)的氏豌,另外一種是fast paxos實現(xiàn)的,默認是fast

fast paxos

某server首先向所有的server提議自己要成為leader喉酌,其他server收到之后,解決apoch和zxid的沖突泵喘,并接受對方建議泪电,然后向?qū)Ψ桨l(fā)送完成的信息。


image

同步流程

選完leader之后纪铺,zk就進入同步流程

  1. leader等待server連接
  2. Follow連接leader相速,將最大的zxid發(fā)送給leader
  3. leader根據(jù)zxid確定同步點
  4. 完成同步之后通知follower,已經(jīng)成為uptodate狀態(tài)
  5. follower收到uptodate消息后鲜锚,又可以重新接收client的請求進行服務(wù)了突诬。
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苫拍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旺隙,更是在濱河造成了極大的恐慌怯疤,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件催束,死亡現(xiàn)場離奇詭異,居然都是意外死亡伏社,警方通過查閱死者的電腦和手機抠刺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摘昌,“玉大人速妖,你說我怎么就攤上這事〈侠瑁” “怎么了罕容?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稿饰。 經(jīng)常有香客問我锦秒,道長,這世上最難降的妖魔是什么喉镰? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任旅择,我火速辦了婚禮,結(jié)果婚禮上侣姆,老公的妹妹穿的比我還像新娘生真。我一直安慰自己,他們只是感情好捺宗,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布柱蟀。 她就那樣靜靜地躺著,像睡著了一般蚜厉。 火紅的嫁衣襯著肌膚如雪长已。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天昼牛,我揣著相機與錄音痰哨,去河邊找鬼。 笑死匾嘱,一個胖子當著我的面吹牛斤斧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霎烙,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼撬讽,長吁一口氣:“原來是場噩夢啊……” “哼蕊连!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起游昼,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤甘苍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烘豌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體载庭,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡契耿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年卧斟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓖谢。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡标锄,死狀恐怖顽铸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情料皇,我是刑警寧澤谓松,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站践剂,受9級特大地震影響鬼譬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逊脯,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一拧簸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧男窟,春花似錦盆赤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汗捡,卻和暖如春淑际,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扇住。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工春缕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艘蹋。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓锄贼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親女阀。 傳聞我的和親對象是個殘疾皇子宅荤,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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