七、Dubbo——Dubbo的其他配置

1 Dubbo的其他配置

1)配置優先生效原則
在這裏插入圖片描述

(1)JVM 啓動 -D 參數優先,這樣可以使用戶在部署和啓動時進行參數重寫,比如在啓動時需改變協議的端口。
(2)XML 次之,如果在 XML 中有配置,則 dubbo.properties 中的相應配置項無效。
(3)Properties 最後,相當於缺省值,只有 XML 沒有配置時,dubbo.properties 的相應配置項纔會生效,通常用於共享公共配置,比如應用名。

2)消費檢查
默認消費者啓動時會對引用的生成者接口進行檢查(默認check=true)
沒有對應提供者,消費者啓動報錯
在這裏插入圖片描述

dubbo.consumer.check=false取消消費者檢查(工程啓動時不檢查,只在真正調用的時候做檢查)
沒有對應提供者,消費者正常啓動
在這裏插入圖片描述
3)檢查對應的註冊中心
dubbo.registry.check=true

4)超時時間
由於網絡或服務端不可靠,會導致調用出現一種不確定的中間狀態(超時)。爲了避免超時導致客戶端資源(線程)掛起耗盡,必須設置超時時間。
(1) Dubbo消費端
全局超時配置(所有的消費接口)
<dubbo:consumer timeout=“5000” />
dubbo.consumer.timeout=5000
指定接口以及特定方法超時配置
<dubbo:reference interface=“com.foo.BarService” timeout=“2000”>
<dubbo:method name=“sayHello” timeout=“3000” />
</dubbo:reference>

(2) Dubbo服務端
全局超時配置(所有的提供服務接口)
<dubbo:provider timeout=“5000” />

指定接口以及特定方法超時配置
<dubbo:provider interface=“com.foo.BarService” timeout=“2000”>
<dubbo:method name=“sayHello” timeout=“3000” />
</dubbo:provider>

配置的覆蓋規則:

  1. 方法級配置別優於接口級別,即小Scope優先 (精確優先)
  2. Consumer端配置 優於 Provider配置 優於 全局配置,(消費者配置優先)
  3. 最後是Dubbo Hard Code的配置值(見配置文檔,默認超時時間爲1000ms)
    在這裏插入圖片描述

5 ) 重試次數(一般與超時時間搭配使用)

失敗自動切換,當出現失敗,重試其它服務器,但重試會帶來更長延遲。可通過 retries=“2” 來設置重試次數(不含第一次)。

重試次數配置如下:
<dubbo:service retries=“2” />

<dubbo:reference retries=“2” />

dubbo:reference
<dubbo:method name=“findFoo” retries=“2” />
</dubbo:reference>

dubbo.consumer.retrie=2

注意:對於冪等操作,設置重試(不管多少次操作結果都一樣,比如查詢(多次)、刪除、修改(只做一次))
對於非冪等操作,不設置重試,即retries=0(多次操作結果不一樣,比如新增)

6)版本號
當一個接口實現,出現不兼容升級時,可以用版本號過渡,版本號不同的服務相互間不引用。

可以按照以下的步驟進行版本遷移:
在低壓力時間段,先升級一半提供者爲新版本,再將所有消費者升級爲新版本
然後將剩下的一半提供者升級爲新版本

老版本服務提供者配置:
<dubbo:service interface=“com.foo.BarService” version=“1.0.0” />

新版本服務提供者配置:
<dubbo:service interface=“com.foo.BarService” version=“2.0.0” />

老版本服務消費者配置:
<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“1.0.0” />

新版本服務消費者配置:
<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“2.0.0” />

如果不需要區分版本,可以按照以下的方式配置:
<dubbo:reference id=“barService” interface=“com.foo.BarService” version="*" />

7 ) 配置原則
dubbo推薦在Provider上儘量多配置Consumer端屬性:
1、作服務的提供者,比服務使用方更清楚服務性能參數,如調用的超時時間,合理的重試次數,等等
2、在Provider配置後,Consumer不配置則會使用Provider的配置值,即Provider配置可以作爲Consumer的缺省值。否則,Consumer會使用Consumer端的全局設置,這對於Provider不可控的,並且往往是不合理的

發佈了100 篇原創文章 · 獲贊 9 · 訪問量 9202
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章