Dubbo框架設計原理
框架設計
Business
業務邏輯層,只有一層Service
面向介面程式設計,一個介面,對應一個實現
遠端呼叫,通過呼叫介面,來呼叫介面實現
RPC
用於完成遠端過程呼叫,分為很多層
Config
配置層
用於封裝配置檔案中,解析的一些資訊
比如,ReferenceConfig、ServiceConfig
每一個標籤,都有對應的Config
來封裝標籤中的資訊
Proxy
服務代理層
利用代理的方式,生成客戶端、服務端代理物件
代理物件,可以相互呼叫方法
Registry
註冊中心層
完成註冊中心的相關功能
比如,服務的發現、服務的註冊
服務提供者,都需要註冊到註冊中心
服務消費者,都需要從註冊中心訂閱,所需要的服務
Cluster
路由層
完成負載均衡的相關功能
呼叫者,需要呼叫很多的服務
同一個服務,可能冗餘部署在多臺伺服器上
此時,根據負載均衡策略,實現服務呼叫
Monitor
監控層
每一次的呼叫資訊,都會發送資料,給監控層
監控層,以介面的方式,展示傳送的呼叫資料
Protocol
遠端呼叫層
用於完成遠端呼叫
封裝RPC整個呼叫過程
RPC呼叫核心Invoker、Protocol、Exporter
Remoting
完成遠端通訊
遠端呼叫,需要與A、B兩臺伺服器
架起通訊管道,通過管道傳遞資料
Exchange
資訊交換層
就是建立一個客戶端、一個服務端
兩個端,架起管道,進行資料的互聯互通
Transport
傳輸層
傳輸資料,通過Transport封裝傳輸
Transport底層,是Netty框架
Serialize
序列化層
傳輸過程中,資料經過序列化,進行網路傳輸
收到資料,經過反序列化,獲取資料物件
顏色標註
Consumer,服務消費者
Provider,服務提供者
Interface,介面
Class,實現類
Inherit,介面之間的繼承關係
Init,容器初始化
Call,整個呼叫過程
Depend,依賴順序
Dubbo分包
每一層,對應Dubbo的一個分包
選擇,Hierarchical方式
檢視依賴
依賴關係
這些包,都是單向依賴
上層依賴於下層