Skip to content

整合配置中心

1. 配置中心的作用

配置中心在Dubbo中可承担两类职责:

  1. 启动参数的集中式存储。
  2. 流量治理规则集中式存储。
    值得注意的是Dubbo动态配置中心定义了两个不同层次的隔离选项,分别是namespace(默认值public)和group(默认值dubbo)。

2. 配置加载流程

Dubbo配置加载大概分为两个阶段: Alt text 第一阶段为DubboBootstrap初始化之前,在Spring context启动时解析处理XML配置/注解配置/Java-config或者是执行API配置代码,创建config bean并且加入到ConfigManager中。
第二阶段为DubboBootstrap初始化过程,从配置中心读取外部配置,依次处理实例级属性配置和应用级属性配置,最后刷新所有配置实例的属性,也就是属性覆盖。
我们使用的配置中心的配置就是属于第二阶段DubboBootstrap初始化过程中。开启外部化配置后,registry、metadata-report、protocol、qos等全局范围的配置理论上都不再需要在应用中配置,应用开发侧专注业务服务配置,一些全局共享的全局配置转而由运维人员统一配置在远端配置中心。

3. 使用Zookeeper作为配置中心

3.1 添加依赖

参考注册中心依赖

3.2 配置启用Zookeeper

yml
dubbo
  config-center
    address: zookeeper://127.0.0.1:2181
    # 如果Zookeeper开启认证
    # username: hello
    # password: 1234

3.2 ZK配置结构

存储结构如下图所示:
Alt text

  • namespace: 用于不同配置的环境隔离。
  • config: Dubbo约定的固定节点,不可更改,所有配置和流量治理规则都存储在此节点下。
  • dubboapplication: 分别用来隔离全局配置、应用级别配置:dubbo是默认group值,application对应应用名
  • dubbo.properties: 此节点的node value存储具体配置内容

4. 使用Nacos作为配置中心

4.1 增加依赖

参考注册中心依赖

4.2 配置启用Nacos

yml
dubbo
  config-center
    address: nacos://127.0.0.1:8848
    ## 认证
    address: nacos://localhost:8848?username=nacos&password=nacos

4.3 在线配置Nacos

Nacos Server增加配置:
Alt text