dubbo的核心組件基本上可以分為10層
第一層為簡單的service層,也就是經常說的業務層,一般實現業務代碼以及提供接口,也是開發者最關心的一層
第二層config層,config層提供serverconfig和referenceconfig兩個實現類,用於初始化dubbo的配置信息
第三層proxy層,在這一層dubbo提供代理,dubbo會為provider和consumer各自提供給一個代理類,代理層會自動進行遠程調用
第四層register層,提供服務的注冊與發現
第五層cluster層,在cluster層會實現負載均衡,失敗重試策略
第六層為moniter層,提供監控,可以統計調用次數和調用時間
第七層為protocol層,這一層封裝遠程調用,封裝rpc的調用
第八層為exchange層,信息交換發生在在這里,建立request-response模型
第九層為transport層,在這一層是一些網絡傳輸,例如netty,dubbo在這一層封裝了netty等框架
第十層為serialize層,提供信息交互序列化和反序列化
dubbo是怎樣實現遠程調用的
在dubbo的consumer層發起調用,會生成一個proxy代理,這個proxy封裝了一個invoker,可以進行invoker,invoke會從cluster開始,在cluster層過濾provider,選擇到合適的provider
通過client進行傳輸,比如常見的netty。傳輸時會進行序列化,傳輸之后在provider處理之后反序列化,之后會把這個request分配到線程池,最終結果原路返回
