調用超時配置的優先級
可以在多個配置項設置超時,由上至下覆蓋(即上面的優先),示例如下:
# 其它的參數(retries、loadbalance、actives等)的覆蓋策略也一樣。
提供者端特定方法的配置
<dubbo:service interface = "com.alibaba.xxx.XxxService" >
<dubbo:method name= "findPerson" timeout= "1000" />
</dubbo:service>
|
提供者端特定接口的配置
<dubbo:service interface = "com.alibaba.xxx.XxxService" timeout= "200" />
|
# timeout可以在多處設置,配置項及覆蓋規則詳見: Dubbo配置參考手冊
全局配置項值,對應dubbo.properties中的Key名dubbo.service.invoke.timeout
Configuration Relation:
- <dubbo:service/> 服務配置,用於暴露一個服務,定義服務的元信息,一個服務可以用多個協議暴露,一個服務也可以注冊到多個注冊中心。
- <dubbo:reference/> 引用配置,用於創建一個遠程服務代理,一個引用可以指向多個注冊中心。
- <dubbo:protocol/> 協議配置,用於配置提供服務的協議信息,協議由提供方指定,消費方被動接受。
- <dubbo:application/> 應用配置,用於配置當前應用信息,不管該應用是提供者還是消費者。
- <dubbo:module/> 模塊配置,用於配置當前模塊信息,可選。
- <dubbo:registry/> 注冊中心配置,用於配置連接注冊中心相關信息。
- <dubbo:monitor/> 監控中心配置,用於配置連接監控中心相關信息,可選。
- <dubbo:provider/> 提供方的缺省值,當ProtocolConfig和ServiceConfig某屬性沒有配置時,采用此缺省值,可選。
- <dubbo:consumer/> 消費方缺省配置,當ReferenceConfig某屬性沒有配置時,采用此缺省值,可選。
- <dubbo:method/> 方法配置,用於ServiceConfig和ReferenceConfig指定方法級的配置信息。
- <dubbo:argument/> 用於指定方法參數配置。
Configuration Override:
- 上圖中以timeout為例,顯示了配置的查找順序,其它retries, loadbalance, actives等類似。
- 方法級優先,接口級次之,全局配置再次之。
- 如果級別一樣,則消費方優先,提供方次之。
- 其中,服務提供方配置,通過URL經由注冊中心傳遞給消費方。
- 建議由服務提供方設置超時,因為一個方法需要執行多長時間,服務提供方更清楚,如果一個消費方同時引用多個服務,就不需要關心每個服務的超時設置。
- 理論上ReferenceConfig的非服務標識配置,在ConsumerConfig,ServiceConfig, ProviderConfig均可以缺省配置。