调用超时配置的优先级
可以在多个配置项设置超时,由上至下覆盖(即上面的优先),示例如下:
# 其它的参数(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均可以缺省配置。