個(gè)人專題目錄
dubbo配置
1. 配置原則
JVM 啟動(dòng) -D 參數(shù)優(yōu)先,這樣可以使用戶在部署和啟動(dòng)時(shí)進(jìn)行參數(shù)重寫滔驶,比如在啟動(dòng)時(shí)需改變協(xié)議的端口遇革。
XML 次之,如果在 XML 中有配置揭糕,則 dubbo.properties 中的相應(yīng)配置項(xiàng)無效萝快。
Properties 最后,相當(dāng)于缺省值著角,只有 XML 沒有配置時(shí)杠巡,dubbo.properties 的相應(yīng)配置項(xiàng)才會(huì)生效,通常用于共享公共配置雇寇,比如應(yīng)用名。
2. 重試次數(shù)
失敗自動(dòng)切換,當(dāng)出現(xiàn)失敗锨侯,重試其它服務(wù)器嫩海,但重試會(huì)帶來更長延遲。可通過 retries="2" 來設(shè)置重試次數(shù)(不含第一次)。
重試次數(shù)配置如下: <dubbo:service retries="2" /> 或 <dubbo:reference retries="2" /> 或 <dubbo:reference> <dubbo:method name="findFoo" retries="2" /> </dubbo:reference>
3. 超時(shí)時(shí)間
由于網(wǎng)絡(luò)或服務(wù)端不可靠益眉,會(huì)導(dǎo)致調(diào)用出現(xiàn)一種不確定的中間狀態(tài)(超時(shí))旭从。為了避免超時(shí)導(dǎo)致客戶端資源(線程)掛起耗盡,必須設(shè)置超時(shí)時(shí)間瞧栗。
Dubbo消費(fèi)端
全局超時(shí)配置 <dubbo:consumer timeout="5000" /> 指定接口以及特定方法超時(shí)配置 <dubbo:reference interface="com.foo.BarService" timeout="2000"> <dubbo:method name="sayHello" timeout="3000" /> </dubbo:reference>
Dubbo服務(wù)端
全局超時(shí)配置 <dubbo:provider timeout="5000" /> 指定接口以及特定方法超時(shí)配置 <dubbo:provider interface="com.foo.BarService" timeout="2000"> <dubbo:method name="sayHello" timeout="3000" /> </dubbo:provider>
配置原則
dubbo推薦在Provider上盡量多配置Consumer端屬性:
1、作服務(wù)的提供者,比服務(wù)使用方更清楚服務(wù)性能參數(shù)血柳,如調(diào)用的超時(shí)時(shí)間,合理的重試次數(shù)生兆,等等 2难捌、在Provider配置后,Consumer不配置則會(huì)使用Provider的配置值鸦难,即Provider配置可以作為Consumer的缺省值根吁。否則,Consumer會(huì)使用Consumer端的全局設(shè)置合蔽,這對于Provider不可控的击敌,并且往往是不合理的
配置的覆蓋規(guī)則:
方法級(jí)配置別優(yōu)于接口級(jí)別,即小Scope優(yōu)先
Consumer端配置 優(yōu)于 Provider配置 優(yōu)于 全局配置拴事,
最后是Dubbo Hard Code的配置值(見配置文檔)