讀dubbo原始碼筆記(三)

2021-09-01 09:38:16 字數 1221 閱讀 3138

現在看 核心的 serviceconfig

[url]

在服務提供者暴露乙個服務的詳細過程 講解的很清楚

服務提供者暴露乙個服務

這些**基本上都是在 serviceconfig 完成

過程是

export --doexport --doexporturls

export 方法 主要是 解決立即doexport還是 delay以後執行

doexporturls 真正的幹活了

最主要的在最後的一段

if (registryurls != null && registryurls.size() > 0

&& url.getparameter("register", true))

string providerurl = url.tofullstring();

if (logger.isinfoenabled())

invoker<?> invoker = proxyfactory.getinvoker(ref, (class) inte***ceclass, registryurl.addparameterandencoded(constants.export_key, providerurl));

exporter<?> exporter = protocol.export(invoker);

exporters.add(exporter);

}} else

如果 發現需要註冊 那麼

從proxyfactory 獲取 abstractproxyinvoker---(這裡的url是registry url,裡面放置了 provider url )--- 然後 通過 registryprotocol 註冊 --(export)-- 然後 ,生成invokerdelegete --(這裡的url 是 從register url 取出provider url)-- 在根據實際 provider protocol--(export)-- 成 exporter

registryprotocol 類 裡面 這麼玩的

dolocolexport --最終執行 provider protocol(dubboprotocol,rmiprotocol 等......................) 的 export方法 ,

doregister 註冊 url ,實際上預設情況下 也是乙個 dubbo協議rpc

讀dubbo原始碼筆記(一)

首先看extension擴充套件,相當於dubbo最底層核心 如開發者所述 dubbo的擴充套件點載入從jdk標準的spi service provider inte ce 擴充套件點發現機制加強而來。基本上與serviceloader類似 童鞋們,可以先看serviceloader原始碼再來看這個...

讀dubbo原始碼筆記(二)

第二回 前面一回講了dubbo擴充套件,這回來看 與spring的結合。其實可以把這個當成乙個spring自定義標籤的經典範例 首先我們來看 實際用例 重點看 注意這裡 步驟有如下幾步阿 1.首先 繼承 spring namespacehandlersupport,然後每個節點 實現 spring ...

Dubbo原始碼閱讀 三 Dubbo 服務註冊

通過註解來註冊dubbo服務的時候,在服務端和消費端都需要用到乙個元件dubbocomponentscanregistrar,先看下registerbeandefinitions 方法 public void registerbeandefinitions annotationmetadata im...