分佈式系統是若干個個獨立運算的集合,由一組經過網絡進行通訊,爲了完成任務而協調工做的計算機節點組成的系統;前端
目的是爲了利用更多的機器,處理更多的數據;服務器
分佈式架構的實現就不得不說dubbo了;網絡
什麼是dubbo架構
是一款高性能,輕量級的開源Java RPC框架負載均衡
它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務的自動註冊和發現框架
背景異步
隨着互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已沒法應對,分佈式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。async
當網站流量很小時,只需一個應用,將全部功能都部署在一塊兒,以減小部署節點和成本。此時,用於簡化增刪改查工做量的數據訪問框架(ORM)是關鍵。分佈式
當訪問量逐漸增大,單一應用增長機器帶來的加速度愈來愈小,提高效率的方法之一是將應用拆成互不相干的幾個應用,以提高效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。性能
當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服務,逐漸造成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用於提升業務複用及整合的分佈式服務框架(RPC)是關鍵。
當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。此時,用於提升機器利用率的資源調度和治理中心(SOA)是關鍵。
dubbo的本質
遠程服務調用的分佈式框架,經過RPC方式在個服務器間傳輸信息
RPC基本原理
步驟解析
client stub和server stub均是各真實角色的動態代理,通俗的數各真實角色要作的事情要經過xx stub這個代理角色去實現
注意:RPC的兩個核心:通信,序列化
擴展:
經過RPC(遠程過程調用)就能得知,在分佈式架構的項目的每一個實體類爲何都要去序列化了
緣由:爲了能將實體類信息經過RPC(思想,不是具體實現方法)傳輸出去
序列化的做用
方便對象的傳輸,
由於計算機信息的傳輸方式是二進制的,因此對象或其餘格式的信息是不能直接傳輸的,須要序列化成二進制後才能傳輸,對方收到好在發序列化,就能獲得對象信息;
RPC是思想,而dubbo是基於rpc的框架
init:初始化 async:異步 sync:同步
1.register:註冊 2.subscribe:訂閱 3.notify:通知 4.invoke:執行