1. 程式人生 > >ZooKeeper+Dubbox分散式框架

ZooKeeper+Dubbox分散式框架

1.Dubbox概況

  dubbox是一個遠端服務呼叫的分散式框架,致力於SOA架構服務治理方案,滿足服務與web層完全分離的需求。

節點角色說明:

   Provider: 暴露服務的服務提供方。

· Consumer: 呼叫遠端服務的服務消費方。

· Registry: 服務註冊與發現的註冊中心。

· Monitor: 統計服務的呼叫次調和呼叫時間的監控中心。

· Container: 服務執行容器。

呼叫關係說明:

· 0. 服務容器負責啟動,載入,執行服務提供者。

· 1. 服務提供者在啟動時,向註冊中心註冊自己提供的服務。

· 2. 服務消費者在啟動時,向註冊中心訂閱自己所需的服務。

· 3. 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。

· 4. 服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,

如果呼叫失敗,再選另一臺呼叫。

· 5. 服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計

資料到監控中心。

2.註冊中心ZooKeeper

  官方推薦使用 zookeeper 註冊中心。註冊中心負責服務地址的註冊與查詢,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心互動,註冊中心不轉發請求,壓力較小。

  Zookeeper 是 Apacahe Hadoop 的子專案,是一個樹型的目錄服務,支援變更推送,適合作為Dubbox 服務的註冊中心,工業強度較高,可用於生產環境。

安裝:

  進入官網下載地址:http://mirror.bit.edu.cn/apache/zookeeper/ 選一個版本

  放到Centos伺服器上

    scp /Users/chen/Downloads/zookeeper-3.4.10.tar.gz [email protected]:/root

  登入伺服器

    cd /root

    tar -zxvf zookeeper-3.4.10.tar.gz

 

  建立data資料夾

    cd zookeeper-3.4.6/

    mkdir data

 

  配置檔案改名

    cd conf

    mv zoo_sample.cfg zoo.cfg

 

  編輯

    vim zoo.cfg

 

  修改 data 屬性:dataDir=/root/zookeeper-3.4.6/data

  wq命令儲存

 

  啟動

    cd /root/zookeeper-3.4.6/bin/ && ./zkServer.sh start  

  

  出現這個說明成功啟動

3.測試案例

  

  Maven的中央倉庫中找不到Dubbox的jar包,需要手動將Dubbox的jar包安裝到本地倉庫中。

    mvn install:install-file -Dfile=/Users/chen/Downloads/dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar

  

  建立Maven專案,編寫服務提供者和服務消費者,我儲存到了github上面,大家可以參考修改

  提供者

    https://github.com/cracker13/dubboxdemo-service

  消費者

    https://github.com/cracker13/dubboxdemo-web

  訪問地址

    http://localhost:8082/user/showName.do

  測試成功