工作原理
工作原理圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNlZTM0M2MwYTOkF2N0gTYxUWY0UjY1QDZ5gjZ2MzMz8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
第一層:service層,接口層,給服務提供者和消費者來實作的
第二層:config層,配置層,主要是對dubbo進行各種配置的
第三層:proxy層,服務代理層,透明生成用戶端的stub和服務單的skeleton
第四層:registry層,服務注冊層,負責服務的注冊與發現
第五層:cluster層,叢集層,封裝多個服務提供者的路由以及負載均衡,将多個執行個體組合成一個服務
第六層:monitor層,監控層,對rpc接口的調用次數和調用時間進行監控
第七層:protocol層,遠端調用層,封裝rpc調用
第八層:exchange層,資訊交換層,封裝請求響應模式,同步轉異步
第九層:transport層,網絡傳輸層,抽象mina和netty為統一接口
第十層:serialize層,資料序列化層
工作流程:
1)第一步,provider向注冊中心去注冊
2)第二步,consumer從注冊中心訂閱服務,注冊中心會通知consumer注冊好的服務
3)第三步,consumer調用provider
4)第四步,consumer和provider都異步的通知監控中心
注冊中心挂了可以繼續通信嗎?
可以,因為剛開始初始化的時候,消費者會将提供者的位址等資訊拉取到本地緩存,是以注冊中心挂了可以繼續通信