zookeeper分布式鎖實現邏輯

2021-09-22 18:43:15 字數 656 閱讀 5384

獲取鎖過程:

1、在zookeeper建立乙個持久節點lock

2、clienta應用訪問時往該lock節點下建立乙個臨時節點lock-001

3、clientb應用訪問時往該lock節點下建立另乙個臨時節點lock-002,並查詢所有節點後排序,

判斷該節點是否屬於lock節點下的第乙個臨時節點,如果是,則獲得鎖,

如果不是則監聽上乙個節點lock-001,直到lock-001刪除,便獲得鎖,如果搶鎖失敗,則進入等待狀態

4、clientc應用訪問時往該lock節點下插入另乙個臨時節點lock-003,查詢所有節點後排序,

並判斷該節點是否屬於lock節點下的第乙個臨時節點,如果是,則獲得鎖,

如果不是則監聽上乙個節點lock-002,直到lock-002刪除,便獲得鎖,如果搶鎖失敗,則進入等待狀態

解鎖流程:

1、clienta執行完邏輯後,即刪除該臨時節點lock-001,clientb通過監聽臨時節點lock-001,得知被刪除,則獲取鎖

2、clienta執邏輯過程中程式崩潰,則斷開zookeeper連線,即刪除該臨時節點lock-001,clientb通過監聽臨時節點lock-001,得知被刪除,則獲取鎖

3、若clientb也崩潰,clientc等待中監聽到臨時節點lock-002 被刪除,則獲取鎖

Zookeeper實現分布式鎖

zookeeper實現分布式鎖 實現分布式環境下同步鎖的實現 author hao.wang date 2017 1 20 15 43 public class distributelockdemo implements watcher catch ioexception e catch inter...

Zookeeper實現分布式鎖

curatorframework提供的方法 方法名描述 create 開始建立操作,可以呼叫額外的方法 比如方式mode 或者後台執行background 並在最後呼叫forpath 指定要操作的znode delete 開始刪除操作.可以呼叫額外的方法 版本或者後台處理version or bac...

Zookeeper實現分布式鎖

一 分布式鎖介紹 分布式鎖主要用於在分布式環境中保護跨程序 跨主機 跨網路的共享資源實現互斥訪問,以達到保證資料的一致性。二 架構介紹 在介紹使用zookeeper實現分布式鎖之前,首先看當前的系統架構圖 解釋 左邊的整個區域表示乙個zookeeper集群,locker是zookeeper的乙個持久...