dubbo 配置解析

2022-05-23 12:00:10 字數 2589 閱讀 8918

1.dubbo 常用配置

服務配置,用於暴露乙個服務,定義服務的元資訊,乙個服務可以用多個協議暴露,乙個服務也可以註冊到多個註冊中心。

eg、引用服務配置,用於建立乙個遠端服務**,乙個引用可以指向多個註冊中心。

eg、協議配置,用於配置提供服務的協議資訊,協議由提供方指定,消費方被動接受。

eg、模組配置,用於配置當前模組資訊,可選。

註冊中心配置,用於配置連線註冊中心相關資訊。

eg、監控中心配置,用於配置連線監控中心相關資訊,可選。

提供方的預設值,當protocolconfig和serviceconfig某屬性沒有配置時,採用此預設值,可選。

消費方預設配置,當referenceconfig某屬性沒有配置時,採用此預設值,可選。

方法配置,用於serviceconfig和referenceconfig指定方法級的配置資訊。

用於指定方法引數配置。

2. 服務超時設定

方法級優先,介面級次之,全域性配置再次之。

如果級別一樣,則消費方優先,提供方次之。

3. 啟動檢查

dubbo缺省會在啟動時檢查依賴的服務是否可用,不可用時會丟擲異常,阻止spring初始化完成,以便上線時,能及早發現問題,預設check=true。

如果你的spring容器是懶載入的,或者通過api程式設計延遲引用服務,請關閉check,否則服務臨時不可用時,會丟擲異常,拿到null引用,如果check=false,總是會返回引用,當服務恢復時,能自動連上。

可以通過check="false"關閉檢查,比如,測試時,有些服務不關心,或者出現了迴圈依賴,必須有一方先啟動。

1、關閉某個服務的啟動時檢查:(沒有提供者時報錯)

2、關閉所有服務的啟動時檢查:(沒有提供者時報錯)  寫在定義服務消費者一方

3、關閉註冊中心啟動時檢查:(註冊訂閱失敗時報錯)

引用預設是延遲初始化的,只有引用被注入到其它bean,或被getbean()獲取,才會初始化。

如果需要飢餓載入,即沒有人引用也立即生成動態**,可以配置:

4. 訂閱

1、問題

2、解決方案

可以讓服務提供者開發方,只訂閱服務(開發的服務可能依賴其它服務),而不註冊正在開發的服務,通過直連測試正在開發的服務。

禁用註冊配置:

或者:

5、回聲測試(測試服務是否可用)

回聲測試用於檢測服務是否可用,回聲測試按照正常請求流程執行,能夠測試整個呼叫是否通暢,可用於監控。

所有服務自動實現echoservice介面,只需將任意服務引用強制轉型為echoservice,即可使用。

eg、memberservice memberservice = ctx.getbean("memberservice"); // 遠端服務引用

echoservice echoservice = (echoservice) memberservice; // 強制轉型為echoservice

string status = echoservice.$echo("ok"); // 回聲測試可用性

assert(status.equals("ok"))

6、延遲連線 

延遲連線,用於減少長連線數,當有呼叫發起時,再建立長連線。

只對使用長連線的dubbo協議生效。

7、令牌驗證 

防止消費者繞過註冊中心訪問提供者,在註冊中心控制許可權,以決定要不要下發令牌給消費者,註冊中心可靈活改變授權方式,而不需修改或公升級提供者

1、全域性設定開啟令牌驗證:

2、服務級別設定開啟令牌驗證:

3、協議級別設定開啟令牌驗證:

8、日誌適配 

預設自動查詢:log4j、slf4j、jcl、jdk

訪問日誌:

如果你想記錄每一次請求資訊,可開啟訪問日誌,類似於apache的訪問日誌。此日誌量比較大,請注意磁碟容量。

將訪問日誌輸出到當前應用的log4j日誌:

將訪問日誌輸出到指定檔案:

9、配置dubbo快取檔案

配置方法如下:

注意:

檔案的路徑,應用可以根據需要調整,保證這個檔案不會在發布過程中被清除。如果有多個應用程序注意不要使用同乙個檔案,避免內容被覆蓋。

這個檔案會快取:

註冊中心的列表

服務提供者列表

有了這項配置後,當應用重啟過程中,dubbo註冊中心不可用時則應用會從這個快取檔案讀取服務提供者列表的資訊,進一步保證應用可靠性。

文章參考自:

dubbo配置檔案解析

1 用於服務提供方暴露服務位置 例子 html view plain copy beanid bzcommitservice class provider.bzcommitserviceimpl dubbo service inte ce domain.ibzcommitservice ref bz...

1 dubbo配置標籤的解析

本原始碼版本為2.6.7 比如有以下配置 dubbo提供的標籤解析的命名空間為dubbobeandefinitionparser override public void init 解析方法 public beandefinition com.alibaba.dubbo.config.spring....

dubbo原始碼解析(dubbo容器部分)

dubbo 解析 dubbo中也有內建的容器介面就是類 com.alibaba.dubbo.container.container 如下所示 spi spring public inte ce container 也同樣是 spi擴充套件點。而且介面非常的簡單,乾淨,在 dubbo 框架中一共出現了...