Zookeeper

Zookeeper 配置中心的基本用法和工作原理。

1 前提条件

2 使用说明

在此处查看 完整示例代码

2.1 添加 Maven 依赖

如果项目已启用 Zookeeper 作为注册中心,则无需额外配置。

如果未使用 Zookeeper 注册中心,请参考 为注册中心添加 Zookeeper 相关依赖

2.2 启用 Zookeeper 配置中心

<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>

dubbo
  config-center
    address: zookeeper://127.0.0.1:2181

dubbo.config-center.address=zookeeper://127.0.0.1:2181

ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("zookeeper://127.0.0.1:2181");

有关 address 格式,请参考 [zookeeper 注册中心 - 启用配置](../../registry/zookeeper/#22-configure and enable-zookeeper)

3 高级配置

要启用身份验证,请参考 [zookeeper 注册中心 - 启用身份验证](../../registry/zookeeper/#31-authentication and authentication)

3.1 自定义外部配置键

1. 启用外部配置并指定键

dubbo
  config-center
    address: zookeeper://127.0.0.1:2181
    config-file: dubbo.properties

config-file - 外部化配置文件键值,默认为 dubbo.propertiesconfig-file 表示 Dubbo 配置文件存储在远程注册中心时,文件中对应的键值,一般不建议修改此配置项。

2. 将配置添加到 Zookeeper 配置中心 外部化配置的存储结构如下图所示

zk-configcenter.jpg

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

这里是为了解释工作原理,建议使用 dubbo-admin 进行配置管理。

3.2 设置组和命名空间

dubbo
  config-center
    address: zookeeper://127.0.0.1:2181
    group: dubbo-cluster1
    namespace: dev1

对于配置中心,groupnamespace 应在公司(集群)范围内统一,避免不同应用使用不同的值,外部配置和治理规则也应存储在相应的组和命名空间下。

4 流量治理规则

默认情况下,所有流量治理规则都存储在 /dubbo/config 节点下。具体节点结构图如下。建议通过 dubbo-admin 添加、删除和修改流量治理规则。有关更多信息,请参考 Dubbo 支持的具体流量治理功能

zk-configcenter-governance

  • 命名空间,用于不同配置的环境隔离。
  • config,Dubbo 约定的固定节点,不可更改,所有配置和流量治理规则均存储在此节点下。
  • dubbo,所有服务治理规则都是全局的,dubbo 是默认节点
  • configurators/tag-router/condition-router/migration,不同的服务治理规则类型,节点值存储具体的规则内容

上次修改时间:2023 年 1 月 2 日: 增强英文文档 (#1798) (95a9f4f6c1c)