dubbo 是一個分佈式服務框架 是一個高性能的RPC框架 它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。前端
談到了分佈式服務框架 那必然有單一服務框架接下來就談談服務框架的演變過程算法
當網站流量很小時 只須要一個應用 將全部的功能都部署在一個應用上架構
優勢負載均衡
缺點框架
垂直應用架構分佈式
有了缺點就會有改進因而 垂直應用架構就出現了 垂直應用框架將應用拆分紅互不相關的應用 ide
優勢性能
缺點網站
分佈式服務架構spa
當垂直應用愈來愈大 應用之間的交互不可避免 將核心業務抽取出來 做爲獨立的服務 逐漸造成穩定的服務中心 使前端應用可以適應多變的市場 此時 用於提供業務的複用及整合的分佈式服務框架(RPC)是關鍵。
優勢
缺點
流動計算架構
當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。此時,用於提升機器利用率的資源調度和治理中心(SOA)[ Service Oriented Architecture]是關鍵。
什麼叫RPC?
RPC【Remote Procedure Call】是指遠程過程調用,說到遠程過程調用 那就要談到本地過程調用 本地過程當中不一樣方法之間能夠相互調用 可是它只適用於同一個服務中 當咱們在多個服務中想調用不一樣服務中的方法這時候就須要RPC 它是一種進程間通訊方式 適用於不一樣服務之間的通訊
RPC兩個核心模塊:通信,序列化。
1.透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法
2.支持負載均衡算法及容錯機制
3.支持服務自動註冊與發現
隨着技術的發展 應用的發展也愈來愈快 項目的體積也愈來愈大 分佈式服務框架也愈來愈常見 爲了更加方便快捷的對應用進行開發、治理 因而dubbo就出現了
服務提供者(provider):暴露服務的服務提供方 服務提供者在啓動的時候 就會向註冊中心註冊本身的服務
註冊中心(Registry):註冊中心返回服務提供者的地址列表給消費者 若是有變動 註冊中心將基於長鏈接推送變動數據給消費者
服務消費者(Consumer):服務消費者在啓動時 會向註冊中心訂閱本身所需的服務 服務消費者會從地址列表中 經過負載均衡算法 選一臺提供者進行調用 若是調用失敗 在選另一臺
監控中心(Monitor):服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心
調用關係說明
服務容器負責啓動,加載 運行服務提供者
服務提供者在啓動時 向註冊中心註冊本身提供的服務
註冊中心返回提供者地址列表給消費者 若是有變動 註冊中心將基於長鏈接推送變動數據給消費者
服務消費者在啓動時 向註冊中心訂閱本身所需的服務
服務消費者 從地址提供列表中 基於負載均衡算法 選一臺提供者進行調用 若是調用失敗 再選另外一臺進行調用