Dubbo框架的分層設計

2021-09-26 13:04:21 字數 1413 閱讀 1613

先放一張dubbo官方文件的圖:

單從這張圖來看,還是比較複雜的,各種錯綜交錯的箭頭。

從圖中可以看出,dubbo框架可以分為10層,而這10層又可以歸為business、rpc、remoting這三層。

config配置層: 對外的配置介面,以serviceconfig和referenceconfig為中心,可以直接new配置類,也可以通過spring解析配置生成配置類。主要是dubbo的一些配置。

proxy服務**層:服務介面透明**,生成服務的客戶端 stub 和伺服器端 skeleton, 擴充套件介面為proxyfactory 。不論是consumer還是provider,dubbo都會對其生成**,在**之間進行通訊。

registry註冊中心層:封裝服務位址的註冊與發現,以服務 url 為中心,擴充套件介面為 registryfactory, registry, registryservice。進行服務的註冊與發現。

cluster路由層:封裝多個provider的路由以及負載均衡,並橋接註冊中心,以 invoker 為中心,擴充套件介面為 cluster, directory, router, loadbalance。就是將多個服務組合起來形成乙個大服務。

monitor監控層:rpc 呼叫次數和呼叫時間監控,以 statistics 為中心,擴充套件介面為 monito***ctory, monitor, monitorservice。

protocol 遠端呼叫層:封裝 rpc 呼叫,以 invocation, result 為中心,擴充套件介面為 protocol, invoker, exporter。

exchange 資訊交換層:封裝請求響應模式,同步轉非同步,以 request, response 為中心,擴充套件介面為 exchanger, exchangechannel, exchangeclient, exchangeserver。

transport 網路傳輸層:抽象 mina 和 netty 為統一介面,以 message 為中心,擴充套件介面為 channel, transporter, client, server, codec。

serialize 資料序列化層:可復用的一些工具,擴充套件介面為 serialization, objectinput, objectoutput, threadpool。

框架的分層設計

一.分層是什麼 層級是作為程式設計最巨集觀最直觀的表現,就像俯視一間房屋,最直觀可以看出它的劃分,入口,大廳,餐廳,廚房,衛生間,臥室等等,程式也需要像房屋劃分一樣劃分.分層就是根據功能根據優先順序,劃分出層級,負責不同方面的功能.從基礎的工具層,到應用功能的領域層,到關乎程式的運轉的應用層,最後到...

Dubbo(二十) dubbo 原理 框架設計

1 框架設計 business也就是service層,是使用者程式設計所涉及的部分。以下的rpc和remoting都是原理部分。config層就是封裝配置檔案的資訊,就是配置檔案的記憶體表示。config層下面是proxy 服務 層 它會生成客戶端的 物件,生成服務端的 物件。物件互相呼叫方法。pr...

Dubbo框架設計原理

參考文件 整體分為三層 業務邏輯層,只有一層service 面向介面程式設計,乙個介面,對應乙個實現 遠端呼叫,通過呼叫介面,來呼叫介面實現 用於完成遠端過程呼叫,分為很多層 配置層 用於封裝配置檔案中,解析的一些資訊 比如,referenceconfig serviceconfig 每乙個標籤,都...