全局配置优先级
dubbo支持JVM参数、xml文件和properties文件来指定其配置。其优先级如下:
优先级从高到低:
- JVM -D参数,当你部署或者启动应用时,它可以轻易地重写配置,比如,改变dubbo协议端口;
- XML, XML中的当前配置会重写dubbo.properties中的;
- Properties,默认配置,仅仅作用于以上两者没有配置时。
1:如果在classpath下有超过一个dubbo.properties文件,比如,两个jar包都各自包含了dubbo.properties,dubbo将随机选择一个加载,并且打印错误日志。
2:如果 id
没有在protocol
中配置,将使用name
作为默认属性。
timeout,retries, loadbalance等配置优先级
- 上图中以timeout为例,显示了配置的查找(优先级)顺序,其它, actives等类似。
- 方法级优先,接口级次之,全局配置再次之。
- 如果级别一样,则消费方优先,提供方次之。
- 其中,服务提供方配置,通过URL经由注册中心传递给消费方。
- 建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。