在之前的文章我們分析了 dubbo 的服務治理,也就是在 consumer 端在進行服務引用的時候。consumer 首先會根據配置 protocol(協議) 建立 invoke 呼叫物件,它代表乙個可執行體,可向它發起 invoke 呼叫,它有可能是乙個本地的實現,也可能是乙個遠端的實現,也可能乙個集群實現。然後再使用 proxyfactory 介面建立**物件,進行遠端呼叫。
建立的**物件為 invokeinvocationhandler,然後它組合了乙個 mockclusterinvoker 物件。 dubbo 裡面的服務治理就是通過它來完成的。這個裡面就涉及到服務治理也就是集群容錯。
這就是之前分析集群容錯原始碼的整個過程。其實就是通過服務治理從多個服務中選擇中乙個具體的 invoke 來進行呼叫。最終選擇出來的 invoke 如下把示:
dubbo 呼叫流程圖:
我們已經獲取到了乙個具體的 invoke,所以我們下面就是需要來分析一下以下幾個問題:
因為 dubbo 的遠端網路傳輸預設 netty nio的非阻塞並行呼叫通訊的。所以將會再下乙個章節來簡單的介紹一下 netty 的使用。
Dubbo原始碼分析
dubbo原始碼分析 其實已經有很多比較好的原始碼分析部落格,結合部落格和開發經驗再去分析原始碼,就能對dubbo的實現有個整體全面的理解,也能深入去深究其中的具體實現細節。dubbo裡主要用到的spi service provider inte ce netty nio 同步非阻塞多路復用框架,d...
Dubbo原始碼分析之SPI(二)
本篇文章是dubbo spi原始碼分析的第二篇,接著第一篇繼續分析dubbo spi的內容,我們主要介紹 getdefaultextension 獲取預設擴充套件點方法。由於此方法比較簡單,我們略過示例部分,直接分析原始碼。獲取預設擴充套件方法getdefaultextension 是乙個publi...
dubbo原始碼 dubbo之Listener
1.exporterlistener spi public inte ce exporterlistener 使用者可以繼承該方法重寫需要的方法 public abstract class exporterlisteneradapter implements exporterlistener pub...