配置加载流程
在SpringBoot应用启动阶段,Dubbo的读取配置遵循以下原则
- Dubbo支持了多层级的配置,按照预先定义的优先级自动实现配置之间的覆盖,最终所有的配置汇总到数据总线URL后,驱动后续的服务暴露、引用等流程。
- ApplicationConfig、ServiceConfig、ReferenceConfig可以被理解成配置来源的一种,是直接面向用户编程的配置采集方式。
- 配置的格式以properties为主。
配置来源
- JVM系统属性,-D参数
- 外部化配置
- ServiceConfig、ReferenceConfig等编程接口采集的配置
- 本地配置文件 dubbo.properties
覆盖关系
JVM参数配置 > 外部配置 > Spring/API配置 > 本地配置文件
JVM参数配置-Ddubbo.protocol.port=20881
配置格式
目前Dubbo支持的所有配置都是.properties格式的,包括-D、Externalized Configuration等,.properties中的所有配置项遵循一种path-based的配置格式:
- 应用级别
dubbo.application.name=demo-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=-1
- 服务级别
dubbo.service.org.apache.dubbo.samples.api.DemoService.timeout=5000 dubbo.reference.org.apache.dubbo.samples.api.DemoService.timeout=6000 dubbo.reference.org.apache.dubbo.samples.api.DemoService.sayHello.timeout=7000
- 多配置项
dubbo.registries.unit1.address=zookeeper://127.0.0.1:2181 dubbo.registries.unit2.address=zookeeper://127.0.0.1:2182
dubbo.protocols.dubbo.name=dubbo
dubbo.protocols.dubbo.port=20880
dubbo.protoco