深入講解墓阀,分布式中間件Zookeeper

image

1毡惜、Zookeeper簡介

Zookeeper是一個高性能的分布式一致系統(tǒng),在分布式系統(tǒng)中有著廣泛的應(yīng)用斯撮∈疲基于它,可以實現(xiàn)分布式同步吮成、配置管理、命名空間管理等眾多功能辜梳,是分布式系統(tǒng)中常見的基礎(chǔ)系統(tǒng)粱甫。

Zookeeper主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題,它有著樹狀結(jié)構(gòu)的節(jié)點作瞄,每個節(jié)點均可存儲少量的數(shù)據(jù)茶宵。同時,用戶可以修改和訂閱節(jié)點中的內(nèi)容宗挥。分布式系統(tǒng)中的節(jié)點通過監(jiān)控這些數(shù)據(jù)狀態(tài)的變化乌庶,從而可以達(dá)到基于數(shù)據(jù)的集群管理种蝶。

從設(shè)計模式角度來看,Zookeeper是基于觀察者模式實現(xiàn)的瞒大◇φ鳎可以把它作為一個信息的中心。使用該服務(wù)的生產(chǎn)者和消費者都以Zookeeper中的數(shù)據(jù)為基準(zhǔn)透敌。即:

  • 生產(chǎn)者可以改變Zookeeper的節(jié)點盯滚,或者節(jié)點上的數(shù)據(jù)
  • 消費者通過訂閱Zookeeper節(jié)點,從而能夠在節(jié)點變動時收到通知

基于這樣的機(jī)制酗电,將Zookeeper作為信息中心魄藕,便可以實現(xiàn)分布式系統(tǒng)中節(jié)點狀態(tài)的最終一致性。

2撵术、特點

Zookeeper具有以下特點:

  • 最終一致性:客戶端不論連接到哪個Zookeeper的哪一個節(jié)點背率,都會收到同一份狀態(tài)。這是zookeeper最重要的性能嫩与。
  • 可靠性:Zookeeper集群具有簡單寝姿、健壯、良好的性能蕴纳,如果消息m被到一臺server接受会油,那么它將被所有的server接受。
  • 實時性:Zookeeper保證client將在一個時間間隔范圍內(nèi)獲得server的更新信息古毛,或者server失效的信息翻翩。但由于網(wǎng)絡(luò)延時等原因,Zookeeper不能保證兩個client能同時得到剛更新的數(shù)據(jù)稻薇,如果需要最新數(shù)據(jù)嫂冻,應(yīng)該在讀數(shù)據(jù)之前調(diào)用sync()接口。
  • 等待無關(guān)(wait-free):慢的或者失效的client不得干預(yù)快速的client的請求塞椎,使得每個client都能有效的等待。
  • 原子性:更新只能成功或者失敗案狠,沒有中間狀態(tài)。
  • 順序性:包括全局有序和偏序兩種:全局有序是指如果在一臺server上消息a在消息b前發(fā)布骂铁,則在所有Server上消息a都將在消息b前被發(fā)布;偏序是指如果一個消息b在消息a后被同一個發(fā)送者發(fā)布拉庵,a必將排在b前面灿椅。

3、zookeeper應(yīng)用場景

  • 數(shù)據(jù)發(fā)布與訂閱:應(yīng)用配置集中到節(jié)點上操刀,應(yīng)用啟動時主動獲取,并在節(jié)點上注冊一個watcher婴洼,每次配置更新都會通知到應(yīng)用。
  • 名空間服務(wù):分布式命名服務(wù)窃蹋,創(chuàng)建一個節(jié)點后卡啰,節(jié)點的路徑就是全局唯一的,可以作為全局名稱使用警没。
  • 分布式通知/協(xié)調(diào):不同的系統(tǒng)都監(jiān)聽同一個節(jié)點匈辱,一旦有了更新,另一個系統(tǒng)能夠收到通知杀迹。
  • 分布式鎖:Zookeeper能保證數(shù)據(jù)的強(qiáng)一致性亡脸,用戶任何時候都可以相信集群中每個節(jié)點的數(shù)據(jù)都是相同的。一個用戶創(chuàng)建一個節(jié)點作為鎖树酪,另一個用戶檢測該節(jié)點浅碾,如果存在,代表別的用戶已經(jīng)鎖住续语,如果不存在垂谢,則可以創(chuàng)建一個節(jié)點,代表擁有一個鎖疮茄。
  • 集群管理:每個加入集群的機(jī)器都創(chuàng)建一個節(jié)點滥朱,寫入自己的狀態(tài)。監(jiān)控父節(jié)點的用戶會受到通知力试,進(jìn)行相應(yīng)的處理徙邻。離開時刪除節(jié)點,監(jiān)控父節(jié)點的用戶同樣會收到通知畸裳。如圖:
image
  • 配置管理:在分布式應(yīng)用環(huán)境中很常見缰犁,例如同一個應(yīng)用系統(tǒng)需要多臺節(jié)點運行,但是它們運行的應(yīng)用系統(tǒng)的某些配置項是相同的怖糊,如果要修改這些相同的配置項帅容,那么就必須同時修改每臺運行這個應(yīng)用系統(tǒng)的 PC Server,這樣非常麻煩而且容易出錯伍伤。像這樣的配置信息完全可以交給 Zookeeper 來管理丰嘉,將配置信息保存在 Zookeeper 的某個目錄節(jié)點中,然后將所有需要修改的應(yīng)用機(jī)器監(jiān)控配置信息的狀態(tài)嚷缭,一旦配置信息發(fā)生變化,每臺應(yīng)用機(jī)器就會收到 Zookeeper 的通知,然后從 Zookeeper 獲取新的配置信息應(yīng)用到系統(tǒng)中阅爽。如圖:
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末路幸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子付翁,更是在濱河造成了極大的恐慌简肴,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件百侧,死亡現(xiàn)場離奇詭異砰识,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)佣渴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門辫狼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辛润,你說我怎么就攤上這事膨处。” “怎么了真椿?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵突硝,是天一觀的道長置济。 經(jīng)常有香客問我解恰,道長修噪,這世上最難降的妖魔是什么路媚? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任整慎,我火速辦了婚禮,結(jié)果婚禮上撤师,老公的妹妹穿的比我還像新娘剃盾。我一直安慰自己腺占,他們只是感情好衰伯,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布意鲸。 她就那樣靜靜地躺著尽爆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪槐雾。 梳的紋絲不亂的頭發(fā)上饱亿,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天彪笼,我揣著相機(jī)與錄音,去河邊找鬼幅恋。 笑死泵肄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的品追。 我是一名探鬼主播冯丙,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼胃惜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鲫趁?” 一聲冷哼從身側(cè)響起利虫,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤堡僻,失蹤者是張志新(化名)和其女友劉穎苦始,沒想到半個月后慌申,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹄溉,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡柒爵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年棉胀,在試婚紗的時候發(fā)現(xiàn)自己被綠了冀膝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡麻掸,死狀恐怖赐纱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疙描,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布久又,位于F島的核電站籽孙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏犯建。R本人自食惡果不足惜瓜客,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一竿开、第九天 我趴在偏房一處隱蔽的房頂上張望玻熙。 院中可真熱鬧,春花似錦列荔、人聲如沸枚尼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盯质。三九已至,卻和暖如春呼巷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔚袍。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工啤咽, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渠脉。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓芋膘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臂拓。 傳聞我的和親對象是個殘疾皇子习寸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

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