Dubbo 之服務發布和註冊(二)(補充)

2021-09-02 02:36:30 字數 1827 閱讀 3044

dubbo 之服務發布和註冊(一)

在之前的部落格(中介紹過了,如果發布 dubbo 服務不使用註冊中心的話,可以這麼配置:

......

......

//如果配置了註冊中心

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

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

if (logger.isinfoenabled())

invoker> invoker = proxyfactory.getinvoker(ref, (class) inte***ceclass, registryurl.addparameterandencoded(constants.export_key, url.tofullstring()));

exporter> exporter = protocol.export(invoker);

exporters.add(exporter);

}} else

......

......

上面**中的 protocol 就是來自:

private static final protocol protocol = extensionloader.getextensionloader(protocol.class).getadaptiveextension();
即就是 protocol$adaptive。執行了 protocol$adaptive 的 export() 方法:

......

......

public com.alibaba.dubbo.rpc.exporter export(com.alibaba.dubbo.rpc.invoker arg0) throws com.alibaba.dubbo.rpc.invoker

......

......

又是獲取的乙個 extension,這個 extension 到底是什麼取決於 extname,即來自 url.getprotocol。其實可以猜測這裡的 extname 是跟協議有關協議,因為不需要註冊中心了,後面直接 exporters.add() 即可。也可以 debug 除錯一下,先將註冊中心改為 「n/a」:

發布服務:

我這裡是 dubbo 協議,所以這裡是 dubbo:

既然這裡是 dubbo 了,結合對應關係,這裡就是 dubboprotocol:

看看 dubboprotocol 的 export() 方法:

最終還是到了這個方法:com.alibaba.dubbo.common.extension.extensionloader#createextension

dubbo 服務發布及註冊流程

dubbo 服務發布原始碼分析 export 進行服務發布 首先會獲得註冊中心集合列表以及協議集合列表,遍歷協議中心列表進行多協議發布服務 服務發布時,會根據配置檔案的引數資訊封裝成map物件,最後將map物件轉換成url位址的引數 根據url位址的協議頭 registry 會在 protocol....

Dubbo原始碼剖析三之服務註冊過程分析

dubbo原始碼剖析二之註冊中心 池塘裡洗澡的鴨子 cnblogs.com 中對註冊中心進行了簡單的介紹,對dubbo整合zookeeper鏈結原始碼進行了詳細分析。本文接著對服務註冊過程原始碼進行分析。借圖說明服務註冊 暴露 流程 利用之前案例跟蹤除錯分析上述流程的實現,或者驗證該流程 2 然後通...

springCloud學習之服務註冊和發現

leader讓完乙個簡單的springcloud的demo,自己之前聽說過springcloud微服務,但是沒有重視。現在網上查各種資料,但是感覺不怎麼樣啊,還是不會,明天晚上把 給他看,天啦,這個任務對我來說,太難了,但是也要想辦法完成啊。像建立springboot專案一樣,加了個註解 enabl...