Nacos

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

1 前提条件

当 Dubbo 使用 3.0.0 及以上版本时,需要使用 Nacos 2.0.0 及以上版本。

2 使用说明

2.1 添加 Maven 依赖

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

如果未启用 Nacos 注册表,请参阅 [向注册表添加 Nacos 依赖项](../../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. 应用程序打开配置中心配置

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

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

2. 向 Nacos 服务器添加配置

nacos-configcenter-global-properties.png

dataId 为 dubbo.properties,组分组与 config-center 一致,如果未设置,则默认为 dubbo

3.1.2 应用程序特定的外部化配置

1. 应用程序打开配置中心配置

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 服务器添加配置

nacos-configcenter-application-properties.png

dataId 为 dubbo.properties,组设置为应用程序名称,即 demo-provider

3.2 设置组和命名空间

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

对于配置中心,groupnamespace 应该在整个公司(集群)内统一,防止不同的应用程序使用不同的值。

3.3 Nacos 扩展配置

有关 Nacos sdk/server 支持的更多参数配置,请参阅 [Nacos 注册表 - 更多配置](../../registry/nacos/#35-More Configurations)

4 流量治理规则

对于 Nacos,所有流量治理规则和外部配置都应该是全局可见的,因此同一逻辑集群中的应用程序必须使用相同的命名空间和组。其中,命名空间的默认值为 public,组的默认值为 dubbo。应用程序不应在未经授权的情况下修改命名空间和组,除非它可以保持全局一致性。

建议通过 dubbo-admin 添加、删除和修改流量治理规则。有关更多信息,请参阅 Dubbo 支持的流量治理功能。

nacos-configcenter-governance.jpg

流量治理规则有很多种类型,不同类型规则的 dataId 后缀不同


上次修改时间:2023 年 5 月 10 日: 修复博客和 Java sdk (#2590) (262c1c97246)