外观
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-addr | string | 是 | - | Nacos服务器地址,多个地址用逗号分隔 |
username | string | 否 | - | Nacos用户名 |
password | string | 否 | - | Nacos密码 |
配置中心参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
namespace | string | 否 | - | 命名空间,用于隔离不同环境的配置 |
group | string | 否 | - | 配置分组,用于隔离不同应用的配置 |
enabled | boolean | 否 | true | 是否启用配置中心 |
服务发现参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
namespace | string | 否 | - | 命名空间,用于隔离不同环境的服务 |
group | string | 否 | - | 服务分组,用于隔离不同应用的服务 |
enabled | boolean | 否 | - | 是否启用服务发现 |
load-balance-type | string | 否 | weighted_round_robin | 负载均衡策略 |
metadata | map[string][string] | 否 | - | 元数据配置 |
ip | string | 否 | - | 指定本机IP,用于服务注册 |
port | int | 否 | - | 指定服务端口,用于服务注册 |
环境变量配置
配置支持通过环境变量进行覆盖,支持的环境变量如下:
环境变量 | 说明 | 默认值 |
---|---|---|
NACOS_SERVER_ADDR | Nacos服务器地址 | 127.0.0.1:8848 |
NACOS_USERNAME | Nacos用户名 | nacos |
NACOS_PASSWORD | Nacos密码 | 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
使用建议
- 生产环境建议使用独立的命名空间,避免配置混淆
- 建议为不同应用使用不同的分组,便于管理
- 生产环境建议修改默认的用户名和密码
- 建议配置多个Nacos服务器地址,提高可用性
- 灰度发布时可以通过metadata.version指定版本号
- 根据服务实例性能差异选择合适的负载均衡策略
- 加权轮询策略下,建议根据实例性能合理设置权重值
注意事项
- 确保Nacos服务器防火墙已开放对应端口
- 生产环境建议启用认证
- 集群模式下需要确保所有节点配置一致
- 建议定期备份Nacos配置
- 重要配置建议开启加密存储