概述
在微服务架构中,配置管理面临以下问题:- 配置分散:每个服务都有自己的配置文件
- 配置修改需要重启:修改配置后需要重启服务
- 配置无法追溯:配置变更历史无法追踪
Nacos Config
Nacos 不仅提供服务发现功能,还提供配置管理功能。添加依赖
配置
创建bootstrap.yml(优先于 application.yml 加载):
配置文件命名规则
Nacos 配置文件的 Data ID 格式:user-service.yaml- 默认配置user-service-dev.yaml- 开发环境user-service-prod.yaml- 生产环境
在 Nacos 中创建配置
- 登录 Nacos 控制台
- 配置管理 → 配置列表 → 创建配置
- 填写配置:
- Data ID:
user-service-dev.yaml - Group:
DEFAULT_GROUP - 配置格式:
YAML - 配置内容:
- Data ID:
读取配置
配置动态刷新
@RefreshScope
使用@RefreshScope 注解实现配置动态刷新:
@ConfigurationProperties
使用@ConfigurationProperties 自动支持动态刷新:
多环境配置
命名空间(Namespace)
用于隔离不同环境的配置:分组(Group)
用于区分不同项目的配置:共享配置
多个服务共用的配置:shared-configsextension-configs${spring.application.name}-${profile}.${file-extension}
配置监听
监听配置变化
使用 Nacos 监听器
配置加密
使用 Jasypt 加密
完整示例
bootstrap.yml
Nacos 配置 - common.yaml
Nacos 配置 - user-service-dev.yaml
配置类
控制器
配置管理最佳实践
- 命名空间隔离环境:dev、test、prod 使用不同命名空间
- 分组隔离项目:不同项目使用不同分组
- 共享通用配置:数据库、Redis 等通用配置提取为共享配置
- 敏感信息加密:密码等敏感信息使用加密存储
- 配置版本控制:重要配置变更前备份,利用 Nacos 的历史版本功能
- 监控配置变更:监听配置变化,记录日志