基于zookeeper實(shí)現(xiàn)任務(wù)調(diào)度(4) zk的分布式鎖

有了zookeeper的一致性文件系統(tǒng)梢薪,鎖的問(wèn)題變得容易。鎖服務(wù)可以分為兩類

  • 保持獨(dú)占
    將zookeeper上的一個(gè)znode看作是一把鎖尝哆,通過(guò)createznode的方式來(lái)實(shí)現(xiàn)秉撇。所有客戶端都去創(chuàng)建 /distribute_lock 節(jié)點(diǎn),最終成功創(chuàng)建的那個(gè)客戶端也即擁有了這把鎖较解。用完刪除掉自己創(chuàng)建的distribute_lock 節(jié)點(diǎn)就釋放出鎖畜疾。

  • 控制時(shí)序。 /distribute_lock 已經(jīng)預(yù)先存在印衔,所有客戶端在它下面創(chuàng)建臨時(shí)順序編號(hào)目錄節(jié)點(diǎn)啡捶,和選master一樣,編號(hào)最小的獲得鎖奸焙,用完刪除瞎暑,依次方便。

zk_distributed_locker1.png

在獲取分布式鎖的時(shí)候在locker節(jié)點(diǎn)下創(chuàng)建臨時(shí)順序節(jié)點(diǎn)与帆,釋放鎖的時(shí)候刪除該臨時(shí)節(jié)點(diǎn)了赌。

  • 客戶端調(diào)用createNode方法在locker下創(chuàng)建臨時(shí)順序節(jié)點(diǎn)
  • 調(diào)用getChildren(“l(fā)ocker”)來(lái)獲取locker下面的所有子節(jié)點(diǎn),注意此時(shí)不用設(shè)置任何Watcher玄糟。
  • 客戶端獲取到所有的子節(jié)點(diǎn)path之后勿她,如果發(fā)現(xiàn)自己創(chuàng)建的節(jié)點(diǎn)在所有創(chuàng)建的子節(jié)點(diǎn)序號(hào)最小,那么就認(rèn)為該客戶端獲取到了鎖阵翎。
  • 如果發(fā)現(xiàn)自己創(chuàng)建的節(jié)點(diǎn)并非locker所有子節(jié)點(diǎn)中最小的逢并,說(shuō)明自己還沒(méi)有獲取到鎖,此時(shí)客戶端需要找到比自己小的那個(gè)節(jié)點(diǎn)郭卫,然后對(duì)其調(diào)用exist()方法砍聊,同時(shí)對(duì)其注冊(cè)事件監(jiān)聽器。
  • 之后贰军,讓這個(gè)被關(guān)注的節(jié)點(diǎn)刪除玻蝌,則客戶端的Watcher會(huì)收到相應(yīng)通知,此時(shí)再次判斷自己創(chuàng)建的節(jié)點(diǎn)是否是locker子節(jié)點(diǎn)中序號(hào)最小的词疼,如果是則獲取到了鎖俯树,如果不是則重復(fù)以上步驟繼續(xù)獲取到比自己小的一個(gè)節(jié)點(diǎn)并注冊(cè)監(jiān)聽。
zk_distributed_locker2.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贰盗,一起剝皮案震驚了整個(gè)濱河市聘萨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌童太,老刑警劉巖米辐,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胸完,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡翘贮,警方通過(guò)查閱死者的電腦和手機(jī)赊窥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狸页,“玉大人锨能,你說(shuō)我怎么就攤上這事∩衷牛” “怎么了址遇?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)斋竞。 經(jīng)常有香客問(wèn)我倔约,道長(zhǎng),這世上最難降的妖魔是什么坝初? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任浸剩,我火速辦了婚禮,結(jié)果婚禮上鳄袍,老公的妹妹穿的比我還像新娘绢要。我一直安慰自己,他們只是感情好拗小,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布重罪。 她就那樣靜靜地躺著,像睡著了一般哀九。 火紅的嫁衣襯著肌膚如雪剿配。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天勾栗,我揣著相機(jī)與錄音惨篱,去河邊找鬼盏筐。 笑死围俘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琢融。 我是一名探鬼主播界牡,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼漾抬!你這毒婦竟也來(lái)了宿亡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤纳令,失蹤者是張志新(化名)和其女友劉穎挽荠,沒(méi)想到半個(gè)月后克胳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡圈匆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年漠另,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跃赚。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笆搓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纬傲,到底是詐尸還是另有隱情满败,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布叹括,位于F島的核電站算墨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏领猾。R本人自食惡果不足惜米同,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摔竿。 院中可真熱鬧面粮,春花似錦颜武、人聲如沸薄料。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袁翁。三九已至柴底,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粱胜,已是汗流浹背柄驻。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留焙压,地道東北人鸿脓。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像涯曲,于是被迫代替她去往敵國(guó)和親野哭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • ZooKeeper是一個(gè)分布式的幻件,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)拨黔,是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是...
    Java架構(gòu)007閱讀 2,307評(píng)論 0 4
  • ZooKeeper 節(jié)點(diǎn)是有生命周期的绰沥,這取決于節(jié)點(diǎn)的類型篱蝇。在 ZooKeeper 中贺待,節(jié)點(diǎn)類型可以分為持久節(jié)點(diǎn)(...
    bbe9e62bc5ba閱讀 759評(píng)論 0 0
  • 關(guān)鍵點(diǎn):有序臨時(shí)節(jié)點(diǎn)轉(zhuǎn)自:基于Zookeeper的分布式鎖實(shí)現(xiàn)分布式鎖目前有三種流行方案,分別為基于數(shù)據(jù)庫(kù)零截、Red...
    YDDMAX_Y閱讀 253評(píng)論 0 1
  • 最近我一直在為放棄一份工作做各種準(zhǔn)備狠持,《放棄的藝術(shù)》這本書突然來(lái)到我身邊,看來(lái)是助我一臂之力來(lái)了瞻润。 我們父母那一輩...
    芊帆在線閱讀 1,192評(píng)論 0 9
  • 奶茶千萬(wàn)不要在下午4點(diǎn)后去喝喘垂,因?yàn)榻^對(duì)會(huì)失眠! 周四休息日绍撞,說(shuō)是休息日其實(shí)也不是真正意義上的休息正勒,忙忙碌碌一團(tuán)糟。...
    七月王木木閱讀 278評(píng)論 0 1