現在看 核心的 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...