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
測試成功