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

  • namespace,用於不同配置的環境隔離。
  • 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

  • namespace,用於不同配置的環境隔離。
  • config,Dubbo 約定的固定節點,不可修改,所有配置和流量治理規則都存放在該節點下。
  • dubbo,所有服務治理規則都是全局的,dubbo 是預設節點
  • configurators/tag-router/condition-router/migration,不同的服務治理規則類型,節點值存放具體的規則內容

上次修改時間:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)