zookeeper在dubbo中的作用 zookeeper簡單原理
zookeeper是hadoop的乙個子專案是分布式系統的可靠協調者,他提供了配置維護,名字服務,分布式同步等服務。
可參考知乎回答了解,感覺可以使得對於zookeeper又乙個快速的入門了解, 不過對於在dubbo中的使用感覺 (強烈推薦)的介紹也很容易理解。其中對於zookeeper的工作流程介紹也通俗易懂,**方式容易理解。
總的來說,zookeeper是乙個註冊中心,在dubbo框架中所起的作用一般是consumer與provider兩種使用者的互動平台。這也是其典型應用場景,也就是對應資料的訂閱與發布。
在我的簡單理解就是zookeeper就相當於乙個綜合超市,各種經銷商將商品生產並加以投入zookeeper這一超市進行銷售,客戶可以在超市選擇相應的需要的商品進行消費使用。
在dubbo框架的使用中可以看到配置檔案中下面一句**
對於服務的發布方與使用方需要有相同的addres位址,這個也是下圖的乙個服務節點,用於消費者發現服務與提供者使用服務。
基於下圖的節點圖流程理解的話,在dubbo服務的實現時,dubbo的服務提供者會在zookeeper上面建立乙個臨時節點,表明自己的ip和埠,當消費者需要使用服務時,會先在zookeeper上面查詢,找到服務提供者,做一些負載的選擇(比如隨機、輪流),然後按照這些資訊,訪問服務提供者。
在dubbo中zookeeper的作用流圖如下所示
**與 部落格,其中/dubbo是dubbo在zookeepper上建立的根結點;userservice是服務節點,代表乙個我們實現或者應用的乙個dubbo服務。
下圖是zookeeper的各個伺服器與各個客戶端的關係圖
zookeeper實現實現的一般流程如下圖所示
說起zookeeper不得不提一下znode**(資料節點)**
zookeeper將資料儲存於記憶體中,具體而言,znode是儲存資料的最小單元。而znode被以層次化的結構進行組織,形容一棵樹。其對外提供的檢視類似於unix檔案系統。樹的根znode節點相當於unix檔案系統的根路徑。正如unix中目錄下可以有子目錄一樣,znode結點下也可以掛載子結點,最終形成如下所示結構。
zookeeper將所有資料存在記憶體中,資料模型是一棵樹,如上圖所示;znode天然具有目錄和檔案兩重屬性:即znode既可以當做檔案往裡面寫東西,又可以當做目錄在下面掛載其他znode。
集訓第九天
今天就看了乙個迪傑斯特拉演算法,他的方法就是從乙個頂點出發,找出這個到與它相關頂點的所有路徑,然後在找出其中最小的,作為基量,一次類推 如下 include define inf 0x7fffffff define maxn 50 int matrix maxn maxn void dijkstra...
開課第九天
畫布 1今天是開課第九天,上午講了關於方法的題,下午講了新知識,嗯,今天有點熱,下面就是本寶寶今天的收穫 1 過載 方法名相同,引數列表不同叫做過載,和返回值型別無關。過載方法名必須一致,引數列表不同,和返回值型別無關。引數列表不同 個數不同,順序不同,型別不同 方法過載的時候編譯器會自動找到最適合...
學習第九天
怎麼沒有題面?我怎麼知道?換個鏈結吧!向洛谷勢力低頭 我們畫一下這個小螞蟻走出來的圖形,我們就會發現,是乙個類似長城的形狀 這個題,求最大值,我們應該能很容易想到用動態規劃 那麼對於乙個路徑圍成的圖形,我們需要描述的是它的位置和形狀,所以這顯然是個高維的dp 位置很好描述,但是形狀太複雜了,我們怎麼...