Dubbo是一個Alibaba開源的分布式服務架構,緻力于提供高性能和透明化的RPC遠端服務調用方案,以及SOA服務治理方案。dubbo就是個服務架構,隻有在分布式的時候,才有dubbo這樣的分布式服務架構的需求說白了就是個遠端服務調用的分布式架構,基于WebService。并且Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,隻需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴充進行加載。

說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠端服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運作容器。
調用關系說明:
服務容器負責啟動,加載,運作服務提供者。
服務提供者在啟動時,向注冊中心注冊自己提供的服務。
服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
注冊中心傳回服務提供者位址清單給消費者,如果有變更,注冊中心将基于長連接配接推送變更資料給消費者。
服務消費者,從提供者位址清單中,基于軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
服務消費者和提供者,在記憶體中累計調用次數和調用時間,定時每分鐘發送一次統計資料到監控中心。
通過調用關系我們知道注冊中心在整個項目中起到了一個中介和排程的作用,非常重要,關于注冊中心官方推薦使用<code>ZooKeeper</code> ,下面了解一下ZooKeeper
ZooKeeper是一個分布式的,開放源碼的分布式應用程式協調服務,是Google的Chubby一個開源的實作
Zookeeper是Apacahe Hadoop的子項目,是一個樹型的目錄服務,支援變更推送,适合作為Dubbo服務的注冊中心,工業強度較高,可用于生産環境,并推薦使用
官網下載下傳解壓包,官網位址:http://zookeeper.apache.org/
Windows
Windows下Zookeeper不需要安裝,直接運作解壓完檔案中的<code>bin/zkServer.cmd</code>即可啟動成功
Linux
安裝jdk
先将下載下傳的<code>zookeeper-3.3.6.tar.gz</code>上傳到linux系統。
解壓縮壓縮包 <code>tar -zxvf zookeeper-3.4.6.tar.gz</code>
進入zookeeper-3.4.6目錄,建立data檔案夾。
把<code>zoo_sample.cfg</code>改名為<code>zoo.cfg</code> 指令:<code>mv zoo_sample.cfg zoo.cfg</code>
修改<code>zoo.cfg</code> 中的<code>dataDir</code>屬性,屬性為上面建立data檔案夾路徑(進入data檔案夾,然後使用pwd則可以顯示全部路徑)
進入bin目錄 啟動:<code>./zkServer.sh start</code> 關閉:<code>./zkServer.sh stop</code> 檢視狀态<code>./zkServer.sh status</code>
需要關閉防火牆
使用的時候需要保證兩個項目中有相同的服務接口,即調用的服務類要實作接口,這個接口兩個項目中都需要存在。
兩個項目也都需要引入dubbo的jar和配置好Spring
引入對應的jar , 已經配置好Spring
maven:
2. 編寫對應的類
3. 在Spring檔案中配置服務提供方
4. 配置調用方Spring
5. 調用方使用服務
6. 輸出結果