您好,登錄后才能下訂單哦!
這篇文章主要講解了“Zookeeper的分布式鎖的實現(xiàn)方式”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Zookeeper的分布式鎖的實現(xiàn)方式”吧!
最近在學(xué)習(xí) Zookeeper,在剛開始接觸 Zookeeper 的時候,完全不知道 Zookeeper 有什么用。且很多資料都是將 Zookeeper 描述成一個“類 Unix/Linux 文件系統(tǒng)”的中間件,導(dǎo)致我很難將類 Unix/Linux 文件系統(tǒng)的 Zookeeper 和分布式應(yīng)用聯(lián)系在一起。后來在粗讀了《ZooKeeper 分布式過程協(xié)同技術(shù)詳解》和《從Paxos到Zookeeper 分布式一致性原理與實踐》兩本書,并動手寫了一些 CURD demo 后,初步對 Zookeeper 有了一定的了解。不過比較膚淺,為了進一步加深對 Zookeeper 的認識,我利用空閑時間編寫了本篇文章對應(yīng)的 demo – 基于 Zookeeper 的分布式鎖實現(xiàn)。通過編寫這個分布式鎖 demo,使我對 Zookeeper 的 watcher 機制、Zookeeper 的用途等有了更進一步的認識。不過我所編寫的分布式鎖還是比較簡陋的,實現(xiàn)的也不夠優(yōu)美,僅僅是個練習(xí),僅供參考使用。好了,題外話就說到這里,接下來我們就來聊聊基于 Zookeeper 的分布式鎖實現(xiàn)。
在本章,我將分別說明獨占鎖和讀寫鎖詳細的實現(xiàn)過程,并配以相應(yīng)的流程圖幫助大家了解實現(xiàn)的過程。這里先說說獨占鎖的實現(xiàn)。
獨占鎖又稱排它鎖,從字面意思上很容易理解他們的用途。即如果某個操作 O1 對訪問資源 R1 的過程加鎖,在操作 O1 結(jié)束對資源 R1 訪問前,其他操作不允許訪問資源 R1。以上算是對獨占鎖的簡單定義了,那么這段定義在 Zookeeper 的“類 Unix/Linux 文件系統(tǒng)”的結(jié)構(gòu)中是怎樣實現(xiàn)的呢?在鎖答案前,我們先看張圖:
圖1 獨占鎖的 Zookeeper 節(jié)點結(jié)構(gòu)
如上圖,對于獨占鎖,我們可以將資源 R1 看做是 lock 節(jié)點,操作 O1 訪問資源 R1 看做創(chuàng)建 lock 節(jié)點,釋放資源 R1 看做刪除 lock 節(jié)點。這樣我們就將獨占鎖的定義對應(yīng)于具體的 Zookeeper 節(jié)點結(jié)構(gòu),通過創(chuàng)建 lock 節(jié)點獲取鎖,刪除節(jié)點釋放鎖。詳細的過程如下:
否則繼續(xù)等待
否則對自己關(guān)心的鎖節(jié)點設(shè)置 watcher
感謝各位的閱讀,以上就是“Zookeeper的分布式鎖的實現(xiàn)方式”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Zookeeper的分布式鎖的實現(xiàn)方式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。