在平常的高併發的程式中,為了保證資料的一致性,因此都會用到鎖,來對當前的執行緒進行鎖定。在單機操作中,很好做到,比如可以採用synchronized、lock或者其他的讀寫多來鎖定當前的執行緒。但是在分布式的系統中,就很難做到這一點。因此可以採用zookeeper中節點的特性來滿足這一點。大致實現的思路如下。
1.每個客戶端都去zookeeper上建立臨時的順序節點
2.客戶端判斷當前自己建立的節點是不是最小的
3.如果是的話,就獲得了執行當前任務的鎖
4.如果不是的話,就找到比自己小的節點,然後進行監聽,如果被刪除的話,就可以獲得鎖
上面就是大致的實現思路,下面我們來通過**來實現一下。
在平常的高併發的程式中,為了保證資料的一致性,因此都會用到鎖,來對當前的執行緒進行鎖定。在單機操作中,很好做到,比如可以採用synchronized、lock或者其他的讀寫多來鎖定當前的執行緒。但是在分布式的系統中,就很難做到這一點。因此可以採用zookeeper中節點的特性來滿足這一點。大致實現的思路如下。
1.每個客戶端都去zookeeper上建立臨時的順序節點
2.客戶端判斷當前自己建立的節點是不是最小的
3.如果是的話,就獲得了執行當前任務的鎖
4.如果不是的話,就找到比自己小的節點,然後進行監聽,如果被刪除的話,就可以獲得鎖
上面就是大致的實現思路,下面我們來通過**來實現一下。
Zookeeper應用場景
zookeeper是乙個高可用的分布式資料管理與系統協調框架。基於對paxos演算法的實現,使該框架保證了分布式環境中資料的強一致性,也正是基於這樣的特性,使得zookeeper能夠應用於很多場景。網上對zk的使用場景也有不少介紹,本文將結合作者身邊的專案例子,系統的對zk的使用場景進行歸類介紹。值...
Zookeeper應用場景
分布式佇列 fifo 先進先出 barrier 同步佇列 共享鎖集群管理 leader選舉 命名服務 分布式應用配置項的管理等 fifo設計思路 1.在 queue fifo的目錄下建立 sequential 型別的子目錄 x i 這樣就能保證所有成員加入佇列時都是有編號的。2.出佇列時通過 get...
Zookeeper應用場景
zookeeper 分布式服務框架是 apache hadoop 的乙個子專案,主要是用來解決分布式應用中經常遇到的一些資料管理問題。如 集群管理 統一命名服務 分布式配置管理 分布式訊息佇列 分布 式鎖 分布式通知協調等。越來越多的分布式計算開始強依賴zk,比如storm hbase zookee...