一,什麼是zookeeper?
Zookeeper是一個高性能,開源的分佈式協調服務的應用,它提供了許多功能,使分佈式應用可以基於它實現更高級的服務。它的出現可以使我們更好的治理分佈式服務。
爲什麼需要一個東西來協調服務呢~~~ 下面的這張圖有很好的說明?
圖中每輛車,都可以當做一個服務。當服務太多而又沒有一個特定的東西進行管理的時候,所有的服務都會亂一團。然而解決上圖的麻煩就是需要一個紅綠燈,或者一名交警來進行管理, Zokkeeper在分佈式服務中就充當了紅綠燈和交警的服務,對通過dubbo發佈的服務進行治理.
二、分佈式系統的協調
協調:多個節點一起完成的工作
例如:(協調方式)
o 集羣成員管理:集羣中有多少個節點,節點中有多少臺機器,(分佈式系統中需要自動的發現成員)
o 鎖:多臺服務器間的分佈式鎖,分佈式系統中必須要用鎖來保證數據一致性
o 選主
o 同步:數據一致性,數據發生變化後要同步到各個機器,數據的版本要一致
o 發佈/訂閱
三,數據模型
Zookeeper典型的應用場景
1.服務的發佈和訂閱
服務通過配置中心將數據服務發佈到zookeeper的一個或者一系列節點上面,訂閱者進行服務訂閱,當數據有變化的時候,zookeeper會及時的通知數據變化。
2.負載均衡
本質是利用zookeeper的配置管理功能,步驟如下:
命名服務的實際效果可以參考負載均衡第2條,都是通過ip和端口號來進行尋找並使用對應的服務。
4.分佈式協調/通知(下面的內容詳情別的文檔)
5.集羣管理
6.Master選舉
7.分佈式鎖
以上的即爲zokkeeper的運用場景詳細內容下回記錄