Nacos

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

1 前置條件

當 Dubbo 使用 3.0.0 及以上版本時,需要使用 Nacos 2.0.0 及以上版本。

2 使用說明

2.1 加入 Maven dependencies

如果專案已啟用 Nacos 作為註冊中心,則無需額外配置。

如果未啟用 Nacos 註冊中心,請參考 [新增 Nacos dependencies 至註冊中心](../../registry/nacos/#21-Add dependencies)。

2.2 啟用 Nacos 配置中心

<dubbo:config-center address="nacos://127.0.0.1:8848"/>

dubbo
  config-center
    address: nacos://127.0.0.1:8848

dubbo.config-center.address=nacos://127.0.0.1:8848

ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("nacos://127.0.0.1:8848");

關於 address 格式,請參考 [Nacos 註冊中心 - 啟用配置](../../registry/nacos/#22-configure and enable-nacos)

3 進階配置

要啟用身份驗證,請參考 Nacos 註冊中心 - 啟用身份驗證

3.1 外部配置

3.1.1 全域外部化配置

1. 應用程式開啟 config-center 配置

dubbo
  config-center
    address: nacos://127.0.0.1:2181
    config-file: dubbo.properties # optional

config-file - 全域外部化設定檔鍵值,預設為 dubbo.propertiesconfig-file 代表 Dubbo 設定檔儲存在遠端註冊中心時,在配置中心中檔案對應的鍵值,一般不建議修改此配置項。

2. 在 Nacos Server 中新增配置

nacos-configcenter-global-properties.png

dataId 為 dubbo.properties,group 分組與 config-center 一致,若未設定,預設會填入 dubbo

3.1.2 應用程式特定外部化配置

1. 應用程式開啟 config-center 配置

dubbo
  config-center
    address: nacos://127.0.0.1:2181
    app-config-file: dubbo.properties # optional

app-config-file - 當前應用程序特定的外部化配置文件鍵值,例如 app-name-dubbo.properties,僅在需要覆蓋全局外部化配置文件 config-file 時才配置。

2. 在 Nacos Server 中新增配置

nacos-configcenter-application-properties.png

dataId 為 dubbo.properties,group 設置為應用程序名稱,即 demo-provider

3.2 設置 group 和 namespace

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

對於配置中心,groupnamespace 應在公司(集群)內統一,防止不同應用使用不同的值。

3.3 Nacos 擴展配置

關於 Nacos sdk/server 支持的更多參數配置,請參考 [Nacos Registry - 更多配置](../../registry/nacos/#35-More Configurations)

4 流量治理規則

對於 Nacos 來說,所有流量治理規則和外部化配置都應該是全局可見的,因此同一個邏輯集群內的應用必須使用相同的 namespace 和 group。其中,namespace 的默認值為 public,group 的默認值為 dubbo。應用不應擅自修改 namespace 和 group,除非能保證全局一致性。

建議通過 dubbo-admin 來新增、刪除和修改流量治理規則,更多信息請參考 Dubbo 支持的流量治理能力。

nacos-configcenter-governance.jpg

流量治理規則有很多種類型,不同類型規則的 dataId 後綴不同


上次修改時間:2023 年 5 月 10 日: 修復博客和 Java SDK (#2590) (262c1c97246)