Dubbo原理与框架设计
生活随笔
收集整理的這篇文章主要介紹了
Dubbo原理与框架设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Dubbo是常用的開源服務治理型RPC框架,在之前osgi框架下不同bundle之間的方法調用時用到過。其工作原理和框架設計值得開源技術愛好者學習和研究。
一、Dubbo的工作原理
調用關系說明
二、Dubbo的框架分層
圖例說明:
- 圖中左邊淡藍背景的為服務消費方使用的接口,右邊淡綠色背景的為服務提供方使用的接口,位于中軸線上的為雙方都用到的接口。
- 圖中從下至上分為十層,各層均為單向依賴,右邊的黑色箭頭代表層之間的依賴關系,每一層都可以剝離上層被復用,其中,Service 和 Config 層為 API,其它各層均為 SPI。
- 圖中綠色小塊的為擴展接口,藍色小塊為實現類,圖中只顯示用于關聯各層的實現類。
- 圖中藍色虛線為初始化過程,即啟動時組裝鏈,紅色實線為方法調用過程,即運行時調時鏈,紫色三角箭頭為繼承,可以把子類看作父類的同一個節點,線上的文字為調用的方法。
各層說明
- config 配置層:對外配置接口,以?ServiceConfig,?ReferenceConfig?為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類
- proxy 服務代理層:服務接口透明代理,生成服務的客戶端 Stub 和服務器端 Skeleton, 以?ServiceProxy?為中心,擴展接口為?ProxyFactory
- registry 注冊中心層:封裝服務地址的注冊與發現,以服務 URL 為中心,擴展接口為?RegistryFactory,?Registry,?RegistryService
- cluster 路由層:封裝多個提供者的路由及負載均衡,并橋接注冊中心,以?Invoker?為中心,擴展接口為?Cluster,?Directory,?Router,?LoadBalance
- monitor 監控層:RPC 調用次數和調用時間監控,以?Statistics?為中心,擴展接口為?MonitorFactory,?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安裝配置手冊
三、其它RPC框架
motan是和Dubbo類似的服務治理型RPC框架,是新浪2016年開源的RPC框架,總體設計和Dubbo類似,相當于Dubbo的精簡版,去掉了一些不常用的協議、注冊中心、通訊組件等的支持。
雖然Dubbo本身不支持多語言,但它可以很方便的集成其它多語言型RPC框架,如thrift等。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Dubbo原理与框架设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pycharm工具下代码下面显示波浪线的
- 下一篇: [react] 请说说什么是useSta