Dubbo配置参数优先级

配置之间的关系

Dubbo配置参数优先级_第1张图片

标签 用途 解释
< 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/> 参数配置 用于指定方法参数配置

不同粒度配置的覆盖关系

以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:

  • 方法级优先,接口级次之,全局配置再次之。
  • 如果级别一样,则消费方优先,提供方次之。

其中,服务提供方配置,通过 URL 经由注册中心传递给消费方。

Dubbo配置参数优先级_第2张图片
(建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置)。

理论上 ReferenceConfig 中除了interface这一项,其他所有配置项都可以缺省不配置,框架会自动使用ConsumerConfig,ServiceConfig, ProviderConfig等提供的缺省配置。

注:< dubbo:reference />引用缺省是延迟初始化的,只有引用被注入到其它 Bean,或被 getBean() 获取,才会初始化。如果需要饥饿加载,即没有人引用也立即生成动态代理,可以配置:

你可能感兴趣的:(dubbo,dubbo)