赞
踩
1、我们知道dubbo服务的很多地方都可以对服务进行配置,那么我们怎么知道到到底生效的是呢个配置呢?比如配置服务的调用超时时间timeout属性:
方式1:在注解@DubboReference上配置timeout属性
- @DubboReference(timeout = 1000)
- ISayHelloService sayHelloService;
方式2:在注解@DubboReference上为具体的某一个方法配置timeout属性
- @DubboReference(timeout = 1000 , methods = {@Method(name="sayHello" ,timeout = 500)})
- ISayHelloService sayHelloService;
方式3:配置消费者的超时时间timeout属性
dubbo.consumer.timeout=2000
方式4:在注解@DubboService上配置timeout属性
- @DubboService(timeout = 3000)
- public class SayHelloServiceImpl implements ISayHelloService {
方式5:在注解@DubboService上为具体的某一个方法配置timeout属性
- @DubboService(timeout = 3000, methods = {@Method(name = "sayHello" ,timeout = 4000)})
- public class SayHelloServiceImpl implements ISayHelloService {
方式6:在提供者处配置timeout属性
dubbo.provider.timeout=5000
2、通过1中我们列举了很多可以配置服务属性地方,那么如果我们都配置的话,到底是哪个配置生效呢?哪个配置的优先级是最高的呢?
针对这个问题我们借用dubbo官方的资料来进行详细说明:
有了这个规则后,我们来给我们在1中定义的6中配置方式来按照优先级从高到低的排序一下:
方式2 > 方式5 > 方式1 > 方式4 >方式3 > 方式6
其他的服务相关的属性的配置优先级也是严格按照此规则进行。
3、dubbo外部化配置的优先级规则
我们还是使用官方的话来说明一下外部化配置的优先级:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。