实践Dubbo之配置

所有配置项分为三大类,参见下表中的”作用” 一列。

  • 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。
  • 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条件,比如路由等。
  • 性能调优:表示该配置项用于调优性能,不同的选项对性能会产生影响,比如权重。
  • 所有配置最终都将转换为 URL表示,并由服务提供方生成,经注册中心传递给消费方,各属性对应 URL 的参数,参见配置项一览表中的 “对应URL参数” 列。【导致注册中心过重,因而引入了配置中心。】

自动配置

实践Dubbo注解驱动

@EnableDubbo

外部化配置

dubbo的各个配置对象,比如ApplicationConfig、ProtocolConfig等,通过外部化配置,则可以不用通过定义bean等形式来配置,而是通过自动配置驱动,比如:配置dubbo.protocol.name=dubbo会实例化ProtocolConfig

配置类 外部化配置属性前缀 用途
ProtocolConfig dubbo.protocol 协议配置
ApplicationConfig dubbo.application 应用配置
ModuleConfig dubbo.module 模块配置
RegistryConfig dubbo.registry 注册中心配置
MonitorConfig dubbo.monitor 监控中心配置
ProviderConfig dubbo.provider 提供方配置
ConsumerConfig dubbo.consumer 消费方配置

Dubbo 外部化配置(Externalized Configuration)

@EnableDubboConfig

since 2.5.8

@EnableDubboConfigBinding&@EnableDubboConfigBindings

since 2.5.8

配置中心

配置中心(v2.7.0)在Dubbo中承担两个职责(从注册中心剥离出来):

  1. 外部化配置。启动配置的集中式存储 (简单理解为dubbo.properties的外部化存储)。
  2. 服务治理。服务治理规则的存储与通知。

zookeeper

外部化配置

Dubbo Zookeeper Config Center

服务治理

Dubbo Zookeeper Config Center Governance

配置优先级

Dubbo Configuration Priority

Dubbo Config Override