dubbo配置(一)
目錄
1.配置原則
2.重試次數
3.超時時間
(1)消費端
(2)服務端
(3)配置原理
(4)版本號
?
1.配置原則
-
JVM 啟動 -D 參數優先,這樣可以使用戶在部署和啟動時進行參數重寫,比如在啟動時需改變協議的端口。
-
XML 次之,如果在 XML 中有配置,則 dubbo.properties 中的相應配置項無效。
-
Properties 最后,相當于缺省值,只有 XML 沒有配置時,dubbo.properties 的相應配置項才會生效,通常用于共享公共配置,比如應用名。
2.重試次數
-
失敗自動切換,當出現失敗,重試其它服務器,但重試會帶來更長延遲。可通過 retries="2" 來設置重試次數(不含第一次)
3.超時時間
-
由于網絡或服務端不可靠,會導致調用出現一種不確定的中間狀態(超時)。為了避免超時導致客戶端資源(線程)掛起耗盡,必須設置超時時間。
(1)消費端
全局超時配置 <dubbo:consumer timeout="5000" /> ? 指定接口以及特定方法超時配置 <dubbo:reference interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" /> </dubbo:reference>(2)服務端
全局超時配置 <dubbo:provider timeout="5000" /> ? 指定接口以及特定方法超時配置 <dubbo:provider interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" /> </dubbo:provider>(3)配置原理
-
dubbo推薦在Provider上盡量多配置Consumer端屬性:
-
服務的提供者,比服務使用方更清楚服務性能參數,如調用的超時時間,合理的重試次數,等等
-
在Provider配置后,Consumer不配置則會使用Provider的配置值,即Provider配置可以作為Consumer的缺省值。否則,Consumer會使用Consumer端的全局設置,這對于Provider不可控的,并且往往是不合理的
-
-
配置的覆蓋原則
-
方法級配置別優于接口級別,即小Scope優先
-
Consumer端配置 優于 Provider配置 優于 全局配置
-
最后是Dubbo Hard Code的配置值(見配置文檔)
-
(4)版本號
當一個接口實現,出現不兼容升級時,可以用版本號過渡,版本號不同的服務相互間不引用。
可以按照以下的步驟進行版本遷移:
在低壓力時間段,先升級一半提供者為新版本
再將所有消費者升級為新版本
然后將剩下的一半提供者升級為新版本
老版本服務提供者配置: <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="*" />?
總結
以上是生活随笔為你收集整理的dubbo配置(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dubbo入门(一)
- 下一篇: angular入门