1、什麼是dubbo
dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架, 使得應用可經過高性能的RPC實現服務的輸出和輸入功能, 能夠和Spring框架無縫集成.html
2、爲何要用dubbo
隨着互聯網的發展, 網站應用的規模不斷擴大, 常規的垂直應用架構已沒法應對, 分佈式服務架構以及流動計算架構勢在必行, 需一個治理系統確保架構有條不紊的演進;
前端
單一應用架構
當網站流量很小時, 只需一個應用, 將全部功能都部署在一塊兒, 以減小部署節點和成本. 此時, 用於簡化增刪改查工做量的數據訪問框架(ORM)是關鍵;
垂直應用架構
當訪問量逐漸增大, 單一應用增長機器帶來的加速度愈來愈小, 將應用拆成互不相干的幾個應用, 已提高效率. 此時, 用於加速前端頁面開發的Web框架(MVC)是關鍵;
分佈式服務架構
當垂直應用愈來愈多, 應用之間交互不可避免, 將核心業務抽取出來, 做爲獨立的服務, 逐漸造成穩定的服務中心, 使前端應用能更快速的響應多變的市場需求. 此時, 用於提升業務複用及整合的分佈式服務框架(RPC)是關鍵;
流動計算架構
當服務愈來愈多, 容量的評估, 小服務資源的浪費等問題逐漸顯現, 此時須要增長一個調度中心基於訪問壓力實時管理集羣容量, 提升集羣使用率. 此時, 用於提升機器使用率的資源調度中心和治理中心(SOA)是關鍵;java
3、dubbo工做原理
git
節點角色說明:
github
調用關係說明:
0.服務容器負責啓動, 加載, 運行服務提供者;
1.服務提供者在啓動時, 向註冊中心註冊本身提供的服務;
2.服務消費者在啓動時, 向註冊中心訂閱本身所需的服務;
3.註冊中心返回服務提供者地址列表給消費者, 若是有變動, 註冊中心將基於長鏈接推送變動消息給消費者;
4.服務消費者, 從提供者地址列表中, 基於軟負載均衡算法, 選一臺提供者進行調用, 若是調用失敗, 再選另外一臺調用;
5.服務消費者和提供者, 在內存中累計調用次數和調用時間, 定時每分鐘發送一次統計數據到監控中心;算法
4、dubbo使用方法
dubbo官網 http://dubbo.apache.org/zh-cn/index.html , 裏面有一些文檔及資源;
1.打開 https://github.com/apache/incubator-dubbo/releases , 下載dubbo2.6.0版本進行下載(此處使用2.6.0版本進行示例)
2.解壓後, 找到dubbo-demo, 導入至eclipse;
apache
3.導入後以下所示, 從名字能夠看出:
dubbo-demo-api屬於接口, 內部也只有一個接口類;
dubbo-demo-provider屬於服務提供者, 也就是被調用方;
dubbo-demo-consumer屬於服務調用者, 也就是調用方;
api
4.下載zookeeper, 用做註冊中心, 進入bin目錄執行zkServer.cmd便可(我這裏使用zookeeper版本爲3.3.6);
5.調整服務提供者與服務消費者zookeeper註冊中心地址;
服務提供者:
瀏覽器
服務消費者:
tomcat
6.分別啓動服務提供者(Provider.java)與消費者(Consumer)便可;
7.dubbo還提供一個管理控制檯, 是一個war包, 也能夠進入dubbo-admin自行打包, 這裏我將war包分享出來, 連接:https://pan.baidu.com/s/1nLl2RbLMK2f_Pg90mE4h1w 提取碼:fqbq
8.將war包解壓到tomcat的ROOT目錄中(需提早將ROOT中的文件清除), 而後啓動tomcat;
9.瀏覽器中輸入地址打開, 彈出登陸窗口, 用戶名密碼都爲root, 進入控制檯後, 咱們能夠清晰的看到服務統計數量, 而且能夠查看各個服務的狀態;