在dubbo的provider和consumer的配置文件中,如果都配置了timeout的超时时间,dubbo默认以consumer中配置的时间为准
provider.xml的配置:
conusmer中的配置:
最后这个service在调用时的超时时间就是3秒。
另外,
1,consumer会在超过3秒时得到一个调用超时的异常。
2,provider中代码的执行不会因为超时而中断,在执行完毕后,会得到一个dubbo的警告。
在Provider上尽量多配置Consumer端属性
原因如下:作服务的提供者,比服务使用方更清楚服务性能参数,如调用的超时时间,合理的重试次数,等等
在Provider配置后,Consumer不配置则会使用Provider的配置值,即Provider配置可以作为Consumer的缺省值。否则,Consumer会使用Consumer端的全局设置,这对于Provider不可控的,并且往往是不合理的
PS: 配置的覆盖规则:1) 方法级配置别优于接口级别,即小Scope优先 2) Consumer端配置 优于 Provider配置 优于 全局配置,最后是Dubbo Hard Code的配置值(见配置文档)
比如:
timeout="300" retry="2" loadbalance="random" actives="0"/>
< dubbo:service interface="com.al