當前位置:
首頁 > 知識 > Dubbo

Dubbo

(#)

隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分散式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。

單一應用架構

當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。

此時,用於簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。

垂直應用架構

當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。

此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。

分散式服務架構

當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。

此時,用於提高業務復用及整合的分散式服務框架(RPC)是關鍵。

流動計算架構

當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基於訪問壓力實時管理集群容量,提高集群利用率。

此時,用於提高機器利用率的資源調度和治理中心(SOA)是關鍵。

需求

(#)

在大規模服務化之前,應用可能只是通過RMI或Hessian等工具,簡單的暴露和引用遠程服務,通過配置服務的URL地址進行調用,通過F5等硬體進行負載均衡。

以上是Dubbo最基本的幾個需求,更多服務治理問題參見:

http://code.alibabatech.com/blog/experience_1402/service-governance-process.html

架構

(#)

節點角色說明:

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

Consumer:調用遠程服務的服務消費方。

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

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

Container:服務運行容器。

註冊中心負責服務地址的註冊與查找,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心交互,註冊中心不轉發請求,壓力較小

監控中心負責統計各服務調用次數,調用時間等,統計先在內存匯總後每分鐘一次發送到監控中心伺服器,並以報表展示

服務提供者向註冊中心註冊其提供的服務,並彙報調用時間到監控中心,此時間不包含網路開銷

服務消費者向註冊中心獲取服務提供者地址列表,並根據負載演算法直接調用提供者,同時彙報調用時間到監控中心,此時間包含網路開銷

註冊中心,服務提供者,服務消費者三者之間均為長連接,監控中心除外

註冊中心通過長連接感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者

註冊中心和監控中心全部宕機,不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表

註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者

(2) 健狀性:

監控中心宕掉不影響使用,只是丟失部分採樣數據

資料庫宕掉後,註冊中心仍能通過緩存提供服務列表查詢,但不能註冊新服務

註冊中心對等集群,任意一台宕掉後,將自動切換到另一台

註冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地緩存通訊

服務提供者無狀態,任意一台宕掉後,不影響使用

服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復

Deployer:自動部署服務的本地代理。

Repository:倉庫用於存儲服務應用發布包。

Scheduler:調度中心基於訪問壓力自動增減服務提供者。

Admin:統一管理控制台。

官網:http://dubbo.io/

編輯 | 碼哥

圖片源於網路,版權歸原作者所有


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員之家 的精彩文章:

兩個詞,來看懂下一代網路!
我是程序員的女人
從瀕臨破產到改變世界,蘋果讓世人見證設計的力量
分散式系統中唯一 ID 的生成方法
國慶第一天,你在哪裡?

TAG:程序員之家 |