FrameworkJava 使用 Nacos 作为配置中心,实现配置的统一管理和动态刷新。
配置文件命名格式:{服务名}-{环境}.yaml
示例:
zmbdp-gateway-dev.yamlzmbdp-admin-service-test.yamlzmbdp-portal-service-prd.yaml
所有配置默认放在 DEFAULT_GROUP 分组下。
公共配置使用 share- 前缀,各服务可引用:
share-redis-{env}.yaml- Redis 配置share-mysql-{env}.yaml- MySQL 配置share-rabbitmq-{env}.yaml- RabbitMQ 配置share-caffeine-{env}.yaml- 本地缓存配置share-idempotent-{env}.yaml- 幂等性配置share-ratelimit-{env}.yaml- 频控 / 防刷配置share-log-{env}.yaml- 操作日志配置share-token-{env}.yaml- Token 配置share-filter-{env}.yaml- 过滤器配置share-upload-{env}.yaml- 文件上传配置share-mail-{env}.yaml- 邮件配置share-captcha-{env}.yaml- 验证码配置share-map-{env}.yaml- 地图配置share-thread-{env}.yaml- 线程池配置share-xxljob-{env}.yaml- XXL-JOB 执行器配置
在服务配置中通过 spring.cloud.nacos.config.shared-configs 引用共享配置:
spring:
cloud:
nacos:
config:
shared-configs:
- data-id: share-redis-{env}.yaml # {env} 替换为实际环境:dev/test/prd
group: DEFAULT_GROUP
refresh: true
- data-id: share-mysql-{env}.yaml
group: DEFAULT_GROUP
refresh: true三个环境的配置文件分别位于各自的部署目录下,每个环境都有独立的配置文件(不需要修改后缀)。
- 配置路径:
deploy/dev/res/sql/DEFAULT_GROUP/ - 配置文件后缀:
-dev.yaml - 导入方式:将
DEFAULT_GROUP目录打包成 zip,在 Nacos 控制台通过"导入配置"功能导入 - 用途:本地开发调试
- 配置路径:
deploy/test/res/sql/nacos_config/DEFAULT_GROUP/ - 配置文件后缀:
-test.yaml - 导入方式:将
DEFAULT_GROUP目录打包成 zip,在 Nacos 控制台通过"导入配置"功能导入 - 用途:测试环境部署
- 配置路径:
deploy/prd/vm1/res/sql/DEFAULT_GROUP/ - 配置文件后缀:
-prd.yaml - 导入方式:将
DEFAULT_GROUP目录打包成 zip,在 Nacos 控制台通过"导入配置"功能导入 - 用途:生产环境部署
- 进入对应环境的配置目录(如
deploy/dev/res/sql/DEFAULT_GROUP/) - 将整个
DEFAULT_GROUP目录打包成 zip 文件 - 登录 Nacos 控制台,进入"配置管理 > 导入配置"
- 选择 zip 文件导入,系统会自动创建对应的配置文件
每个服务在 src/main/resources/bootstrap.yml 中配置 Nacos 连接:
spring:
application:
name: zmbdp-admin-service
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: {命名空间ID} # 在 Nacos 控制台创建的命名空间 ID
config:
server-addr: localhost:8848
namespace: {命名空间ID} # 与 discovery 保持一致
file-extension: yaml
shared-configs:
- data-id: share-redis-{env}.yaml # {env} 替换为实际环境:dev/test/prd
group: DEFAULT_GROUP
refresh: true说明:
namespace需要在 Nacos 控制台创建命名空间后获取对应的命名空间 IDdiscovery和config的namespace应保持一致- 不同环境可以使用不同的命名空间进行隔离
- Nacos 配置中心(最高优先级)
bootstrap.yml(本地配置)application.yml(默认配置)
配置修改后,Nacos 会自动推送到服务,实现热更新(需配置 refresh: true)。
- 敏感信息:生产环境密码等敏感信息建议使用加密配置
- 配置版本:重要配置变更建议记录版本号
- 配置备份:定期备份 Nacos 配置,避免配置丢失