阿里架構之旅(一) Dubbo初識

2021-08-02 06:02:16 字數 2113 閱讀 4817

最近在做專案中用的是阿里的框架dubbo+zookeeper,可是並不知道什麼是dubbo,什麼是zookeeper,這一系列的問題,引導者我們去不斷的探索。今天我們來看看阿里的分布式服務架構——dubbo。

dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。 

簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並且本質上是個服務呼叫的東東 

說白了就是個遠端服務呼叫的分布式框架(告別web service模式中的wsdl,以服務者與消費者的方式在dubbo上註冊)

(1)remoting:
遠端通訊基礎,提供對多種基於長連線的nio框架抽象封裝,包括多種執行緒模型,序列化,以及「請求-響應」模式的資訊交換方式。

(2)cluster:
服務框架核心提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,位址路由,動態配置等集群支援。

(3)registry:
自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使位址透明,使服務提供方可以平滑增加或減少機器。

透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何api侵入。
軟負載均衡及容錯機制,可在內網替代f5等硬體負載均衡器,降低成本,減少單點。
服務自動註冊與發現,不再需要寫死服務提供方位址,註冊中心基於介面名查詢服務提供者的ip位址,並且能夠平滑新增或刪除服務提供者。
注: dubbo採用全spring配置方式,透明化接入應用,對應用沒有任何api侵入,只需用spring載入dubbo的配置即可,dubbo基於spring的schema擴充套件進行載入。

在大規模服務化之前,應用可能只是通過rmi或hessian等工具,簡單的暴露和引用遠端服務,通過配置服務的url位址進行呼叫,通過f5等硬體進行負載均衡。

傳統的遠端呼叫

dubbo服務治理

dubbo處理後的遠端呼叫

(1) 當服務越來越多時,服務url配置管理變得非常困難,f5硬體負載均衡器的單點壓力也越來越大。
此時需要乙個服務註冊中心,動態的註冊和發現服務,使服務的位置透明。並通過在消費方獲取服務提供方位址列表,實現軟負載均衡和failover,降低對f5硬體負載均衡器的依賴,也能減少部分成本。

(2) 當進一步發展,服務間依賴關係變得錯蹤複雜,甚至分不清哪個應用要在哪個應用之前啟動,架構師都不能完整的描述應用的架構關係。
這時,需要自動畫出應用間的依賴關係圖,以幫助架構師理清理關係。

(3) 接著,服務的呼叫量越來越大,服務的容量問題就暴露出來,這個服務需要多少機器支撐?什麼時候該加機器?
為了解決這些問題,第一步,要將服務現在每天的呼叫量,響應時間,都統計出來,作為容量規劃的參考指標。

通過此次學習,我們簡單了解了一下dubbo,知道了dubbo是乙個分布式服務框架,下次,我們將dobbo的原理解析一下,希望大家繼續關注。

阿里架構之旅(一) Dubbo初識

最近在做專案中用的是阿里的框架dubbo zookeeper,可是並不知道什麼是dubbo,什麼是zookeeper,這一系列的問題,引導者我們去不斷的探索。今天我們來看看阿里的分布式服務架構 dubbo。dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服...

初識Dubbo架構與基本配置

dubbo是阿里開源的乙個soa服務治理框架,從目前來看把它稱作是乙個rcp遠端呼叫框架更為貼切。單從rpc框架來說,功能較完善,支援多種傳輸和序列化方案。其核心功能自然就是遠端呼叫。dubbo架構圖示 dubbo執行流程 provider 提供者 繫結指定埠並啟動服務 指供者連線註冊中心,併發本機...

C 學習之旅一 初識

1.注釋 行注釋 塊注釋 注釋可以出現在 的任何位置,但注釋不能分割關鍵字和識別符號 2.命名空間 1 如果要排程某個命名空間的類或方法,首先需要使用using指令引入命名空間,即堅持使用先宣告的做法 2 命名空間位置無特殊要求,只要使用了using指令,命名空間的自定義可以在主函式所在的命名空間之...