zookeeper使用案例

2021-10-05 15:29:38 字數 1019 閱讀 3765

zookeeper的實際應用場景案例

1、資料發布訂閱/配置中心

1、原理:發布者將資料發布到zookeeper的節點上,訂閱者獲取節點上的資料,從而實現發布訂閱的目的。實現配置資訊的集中式管理和資料的動態更新

2、實現配置中心有兩種模式:push (推送:伺服器端推送)、pull(拉取:客戶端主動拉取),客戶端向服務端註冊要關注的節點,一旦節點發生變化,服務端就會給客戶端傳送通知。

3、zookeeper採用的是推拉相結合的方式。 客戶端向伺服器端註冊自己需要關注的節點。一旦節點資料發生變化,那麼伺服器端就會向客戶端傳送watcher事件通知。客戶端收到通知後,主動到伺服器端獲取更新後的資料

4、注意點:

a.資料量比較小

b.資料內容在執行時會發生動態變更

c.集群中的各個機器共享配置

2、負載均衡

請求/資料分攤多個計算機單元上

實現原理:

在zookeeper的根節點上,每個客戶端都建立乙個子節點,當請求過來的時候,通過負載均衡演算法,路由到對應的子節點對應的客戶端,從而實現負載均衡。

3、分布式鎖

1、目的:使用分布式鎖,主要為了解決分布式環境下,多個計算機單元對乙個共享資源的競爭的關係。防止乙個資源在同一時刻被多個計算機單元進行更改。

2、使用redis實現的原理:

3、使用資料庫實現的原理:

建立乙個表,通過索引唯一的方式—新增乙個表的時候,將其中乙個字段設定為唯一索引,當訪問統一資源的時候,先insert一條資料,那麼只有第乙個插入成功的才認為獲取到了鎖,而其他插入如果出現唯一索引異常的,則等待,當處理完成以後,需要將該資料刪除,以便後來的客戶端能獲取到鎖。

4、使用zookeeper來實現的原理:

排他鎖方式:

做乙個節點locks,在該節點下再建立乙個lock的臨時節點。客戶端在該locks下中去建立lock的臨時節點。則同時只能有乙個能建立成功。

共享鎖方式:有序節點的順序性

有序的臨時節點,每個客戶端寫了節點後,因為會存在乙個最小節點,只有最小節點有優先順序獲取資料。

zookeeper做配置中心小案例

zookeeper是乙個集中的服務,用於維護配置資訊 命名 提供分布式同步和提供組服務,所有這些型別的服務都是以某種形式被分布式應用程式使用。每次他們被實現時,都會有大量的工作來修復不可避免的錯誤和競爭條件。由於實現這些服務的困難,應用程式最初通常會略過這些服務,這使得它們再出現更改時變得脆弱,並且...

Zookeeper基礎使用

啟動zk服務 bin zkserver.sh start 檢視zk服務狀態 bin zkserver.sh status 停止zk服務 bin zkserver.sh stop 重啟zk服務 bin zkserver.sh restart 連線伺服器 zkcli.sh server 127.0.0....

zookeeper簡單使用

zookeeper是一種分布式協調服務,用於管理大量主機。在分布式環境中協調和管理服務是乙個複雜的過 程。zookeeper通過其簡單的體系結構和api解決了這個問題。zookeeper允許開發人員專注於核心應用程式邏輯,而不必擔心應用程式的分布式性質。zookeeper框架最初是在 yahoo 構...