分布式佇列
fifo(先進先出)
barrier(同步佇列)
共享鎖集群管理
leader選舉
命名服務
分布式應用配置項的管理等
fifo設計思路
1.在/queue-fifo的目錄下建立 sequential 型別的子目錄 /x(i),這樣就能保證所有成員加入佇列時都是有編號的。
2.出佇列時通過 getchildren( ) 方法可以返回當前所有的佇列中的元素,然後消費其中最小的乙個,這樣就能保證fifo
barrier(同步佇列)
當乙個佇列的成員都聚齊時,這個佇列才可用,否則一直等待所有成員到達,這種是同步佇列。
例如:遠端會議,所有人到齊了,才開始
barrier設計思路
同步佇列初始化
建立乙個父目錄 /synchronizing,代表同步佇列
進入佇列
建立子節點 /synchronizing/member_i
查人數人齊了(子節點個數=參會人員個數)
建立 /synchronizing/start,開始開會
/synchronizing/start 節點一旦建立就證明人到齊了
人不齊等待 /synchronizing/start 的出現
共享鎖zookeeper 可以實現跨程序或者在不同 server 之間的共享
建立鎖建立乙個父節點/locks 代表同步鎖
每個程序啟動的同時在/locks下面建立子節點/locks/member_i,並且儲存自己的ip位址獲得鎖
查詢/locks下子節點編號最小的哪乙個,檢視資料是否為自己的ip位址,如果是的話,就代表獲得鎖,否則繼續等待
釋放鎖執行完業務操作,把自己建立的節點刪除,就代表釋放鎖
Zookeeper應用場景
zookeeper是乙個高可用的分布式資料管理與系統協調框架。基於對paxos演算法的實現,使該框架保證了分布式環境中資料的強一致性,也正是基於這樣的特性,使得zookeeper能夠應用於很多場景。網上對zk的使用場景也有不少介紹,本文將結合作者身邊的專案例子,系統的對zk的使用場景進行歸類介紹。值...
Zookeeper應用場景
zookeeper 分布式服務框架是 apache hadoop 的乙個子專案,主要是用來解決分布式應用中經常遇到的一些資料管理問題。如 集群管理 統一命名服務 分布式配置管理 分布式訊息佇列 分布 式鎖 分布式通知協調等。越來越多的分布式計算開始強依賴zk,比如storm hbase zookee...
ZooKeeper典型應用場景
zookeeper 是乙個開源的高可用的分布式資料管理與系統協調框架,基於對 paxos 演算法的實現,保證了分布式環境中資料的強一致性。發布與訂閱模型 發布者發布資料到 zk 節點上,供訂閱者動態獲取資料。在資料量很少,但是資料更新快的場景下 訊息中介軟體中的發布者和訂閱者的負載均衡,linked...