Dubbo剖析-服務消費方遠端服務到Invoker的轉換
阿新 • • 發佈:2018-12-23
一、前言
前面dubbo整體架構分析裡面我們講解了服務消費者消費一個服務的詳細過程是,首先 呼叫 Protocol 的 refer 方法生成 Invoker 例項,接下來把Invoker 轉換為客戶端需要的介面(如:UserServiceBo),本文來講解第一個環節的實現
image.png二、遠端服務到Invoker的轉換
遠端服務到Invoker的轉換是下面程式碼完成的:
image.png其中refprotocol是一個協議的擴充套件介面,根據url裡面協議型別,經過增強wrapper類一步步呼叫到具體spi實現類RegistryProtocol,然後後者在步驟(10)從服務註冊中心訂閱具體服務提供方地址列表,並建立具體的DubboInvoker,並在建立它前啟動netty client。步驟(11)建立一個DubboInvoker的裝飾類,用來做負載均衡和容錯處理。
三、總結
服務消費方遠端服務到Invoker的轉換,是通過 ReferenceConfig 類的 init 方法呼叫 Protocol 的 refer 方法生成 Invoker 例項,這是服務消費的關鍵。