Zookeeper提供了一套很好的分佈式集羣管理的機制,就是它這猴子那個幾月層次型的目錄樹的數據結構,並對書中的節點進行有效的管理,從而能夠設計出多種多樣的分佈式的數據管理模型;下面簡要介紹下zookeeper在Dubbo中的應用。數據結構
dubbo主要解決了下圖中描述的問題,像阿里巴巴這種規模的互聯網公司,旗下擁有一系列產品:淘寶、天貓、阿里旅行等。各個系統之間的業務具備必定程度的耦合性,例如支付業務。若是按照傳統的網站開發模式,將這些內部系統徹底獨立割裂,那麼意味着,對於全部相同的業務邏輯,全部的系統都須要實現一遍,若是該公共模塊發生變化,那麼全部的系統須要從新出包發版本上線,隨着公共模塊數量的增長,這種耦合性對於後期迭代和運維而言無疑是一種災難。負載均衡
爲了解決上述的問題,阿里巴巴推出了強大的服務治理框架Dubbo,不一樣的系統要使用相同的模塊,經過dubbo的方式去調用,主要有如下的過程,下面以支付服務爲例進行說明:框架
1-將開發好的RPC支付服務註冊到Dubbo中;運維
2-內部系統注入Dubbo客戶端接口。其實是注入一個動態代理,來調用中間件;分佈式
3-內部系統拿到調用中間件獲取的服務地址,而後去調用該服務;網站
因此支付服務的調用者(內部系統一、二、3.。。)不須要關注該服務到底部署在那些節點上面,以及這些節點上面的負載均衡狀態。這全部的一切都是由Dubbo進行管理,並告知調用者應該去調用哪個節點。設計
二Dubbo之因此能實現這種功能全依賴於ZooKeeper。代理