Skip to content

Nacos配置说明

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。主要用于服务注册发现和配置管理。

基础配置

yaml
nacos:
  # Nacos服务器地址,多个地址用逗号分隔
  server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
  # Nacos用户名
  username: ${NACOS_USERNAME:nacos}
  # Nacos密码
  password: ${NACOS_PASSWORD:nacos}
  
  # 配置中心配置
  config:
    # 命名空间,用于隔离不同环境的配置
    namespace: ${NACOS_NAMESPACE:dev}
    # 配置分组,用于隔离不同应用的配置
    group: ${NACOS_GROUP:dev}
    # 是否启用配置中心
    enabled: true
    
  # 服务发现配置
  discovery:
    # 命名空间,用于隔离不同环境的服务
    namespace: ${NACOS_NAMESPACE:dev}
    # 服务分组,用于隔离不同应用的服务
    group: ${NACOS_GROUP:dev}
    # 是否启用服务发现
    enabled: true
    # 负载均衡策略:round_robin(轮询), random(随机), weighted_round_robin(加权轮询)
    load-balance-type: weighted_round_robin
#    # 元数据配置
#    metadata:
#      # 灰度版本号,用于灰度发布
#      version: gray-2
#    # 指定本机IP,用于服务注册
#    ip: 192.168.3.54
#    # 指定服务端口,用于服务注册
#    port: 9720

配置说明

基础配置参数

参数名类型必填默认值说明
server-addrstring-Nacos服务器地址,多个地址用逗号分隔
usernamestring-Nacos用户名
passwordstring-Nacos密码

配置中心参数

参数名类型必填默认值说明
namespacestring-命名空间,用于隔离不同环境的配置
groupstring-配置分组,用于隔离不同应用的配置
enabledbooleantrue是否启用配置中心

服务发现参数

参数名类型必填默认值说明
namespacestring-命名空间,用于隔离不同环境的服务
groupstring-服务分组,用于隔离不同应用的服务
enabledboolean-是否启用服务发现
load-balance-typestringweighted_round_robin负载均衡策略
metadatamap[string][string]-元数据配置
ipstring-指定本机IP,用于服务注册
portint-指定服务端口,用于服务注册

环境变量配置

配置支持通过环境变量进行覆盖,支持的环境变量如下:

环境变量说明默认值
NACOS_SERVER_ADDRNacos服务器地址127.0.0.1:8848
NACOS_USERNAMENacos用户名nacos
NACOS_PASSWORDNacos密码nacos
NACOS_NAMESPACE命名空间dev
NACOS_GROUP配置分组dev

负载均衡策略

Nacos服务发现支持多种负载均衡策略,通过load-balance-type参数配置:

支持的策略类型

策略类型说明适用场景
round_robin轮询策略服务实例性能相近,需要均匀分配请求
random随机策略简单随机选择,适用于无状态服务
weighted_round_robin加权轮询策略(默认)服务实例性能不同,需要按权重分配请求

策略详细说明

1. 轮询策略 (round_robin)

  • 算法:按顺序依次选择服务实例
  • 特点:请求均匀分配到每个实例
  • 适用:所有服务实例性能相近的场景

2. 随机策略 (random)

  • 算法:随机选择一个可用的服务实例
  • 特点:简单高效,长期来看请求分布相对均匀
  • 适用:对负载均衡要求不高的场景

3. 加权轮询策略 (weighted_round_robin)

  • 算法:基于平滑加权轮询算法,根据实例权重分配请求
  • 特点:权重高的实例获得更多请求,分配更加平滑
  • 适用:服务实例性能差异较大的场景
  • 权重设置:通过Nacos实例的weight属性设置,默认为1

配置示例

yaml
nacos:
  discovery:
    # 使用轮询策略
    load-balance-type: round_robin
    
    # 使用随机策略
    # load-balance-type: random
    
    # 使用加权轮询策略(默认)
    # load-balance-type: weighted_round_robin

使用建议

  1. 生产环境建议使用独立的命名空间,避免配置混淆
  2. 建议为不同应用使用不同的分组,便于管理
  3. 生产环境建议修改默认的用户名和密码
  4. 建议配置多个Nacos服务器地址,提高可用性
  5. 灰度发布时可以通过metadata.version指定版本号
  6. 根据服务实例性能差异选择合适的负载均衡策略
  7. 加权轮询策略下,建议根据实例性能合理设置权重值

注意事项

  1. 确保Nacos服务器防火墙已开放对应端口
  2. 生产环境建议启用认证
  3. 集群模式下需要确保所有节点配置一致
  4. 建议定期备份Nacos配置
  5. 重要配置建议开启加密存储