Dubbo配置加载流程
根据驱动方式的不同(比如Spring或裸API编程)配置形式上肯定会有所差异,具体参考XML配置、Annotation配置、API配置三篇文档。除了外围驱动方式上的差异,Dubbo的配置读取总体上遵循了以下几个原则:
- Dubbo支持了多层级的配置,并按预定优先级自动实现配置间的覆盖,最终所有配置汇总到数据总线URL后驱动后续的服务暴露、引用等流程。
- ApplicationConfig、ServiceConfig、ReferenceConfig可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式。
- 配置格式以Properties为主,在配置内容上遵循约定的
path-based
的命名规范
配置来源
首先,从Dubbo支持的配置来源说起,默认有四种配置来源:
- JVM System Properties,-D参数
- Externalized Configuration,外部化配置
- ServiceConfig、ReferenceConfig等编程接口采集的配置
- 本地配置文件dubbo.properties
覆盖关系
下图展示了配置覆盖关系的优先级,从上到下优先级依次降低: