Dubbo與Zookeeper關係

Dubbo建議使用Zookeeper做爲服務的註冊中心。併發

1.   Zookeeper的做用:負載均衡

        zookeeper用來註冊服務和進行負載均衡,哪個服務由哪個機器來提供必需讓調用者知道,簡單來講就是ip地址和服務名稱的對應關係。固然也能夠 經過硬編碼的方式把這種對應關係在調用方業務代碼中實現,可是若是提供服務的機器掛掉調用者沒法知曉,若是不更改代碼會繼續請求掛掉的機器提供服務。 zookeeper經過心跳機制能夠檢測掛掉的機器並將掛掉機器的ip和服務對應關係從列表中刪除。至於支持高併發,簡單來講就是橫向擴展,在不更改代碼 的狀況經過添加機器來提升運算能力。經過添加新的機器向zookeeper註冊服務,服務的提供者多了能服務的客戶就多了。
 框架

 

2.  dubbo:分佈式

      是管理中間層的工具,在業務層到數據倉庫間有很是多服務的接入和服務提供者須要調度,dubbo提供一個框架解決這個問題。ide

      注意這裏的dubbo只是一個框架,至於你架子上放什麼是徹底取決於你的,就像一個汽車骨架,你須要配你的輪子引擎。這個框架中要完成調度必需要有一個分佈式的註冊中心,儲存全部服務的元數據,你能夠用zk,也能夠用別的,只是你們都用zk。

3. zookeeper和dubbo的關係:
      Dubbo的將註冊中心進行抽象,是得它能夠外接不一樣的存儲媒介給註冊中心提供服務,有ZooKeeper,Memcached,Redis等。
      引入了ZooKeeper做爲存儲媒介,也就把ZooKeeper的特性引進來。首先是負載均衡,單註冊中心的承載能力是有限的,在流量達到必定程度的時 候就須要分流,負載均衡就是爲了分流而存在的,一個ZooKeeper羣配合相應的Web應用就能夠很容易達到負載均衡;資源同步,單單有負載均衡還不 夠,節點之間的數據和資源須要同步,ZooKeeper集羣就自然具有有這樣的功能;命名服務,將樹狀結構用於維護全局的服務地址列表,服務提供者在啓動 的時候,向ZK上的指定節點/dubbo/${serviceName}/providers目錄下寫入本身的URL地址,這個操做就完成了服務的發佈。 其餘特性還有Mast選舉,分佈式鎖等。高併發

相關文章
相關標籤/搜索