Java框架-SpringCloud框架-2
背景
本文是《Java 后端从小白到大神》修仙系列之框架学习,Spring Cloud 微服务实战系列的 第二篇
。Spring Cloud 是构建微服务架构的基石,拥有完整的服务治理生态,在云原生架构中广泛应用。本系列将从架构认知到实际工程,逐步构建一套企业级 Spring Cloud 微服务项目。若想详细学习请点击首篇博文开始,现在开始学习。
文章概览
配置中心统一管理与多环境支持:
- Nacos 简介与安装
- 配置中心使用原理(Nacos Config)
- bootstrap.yml 与 application.yml 的加载机制
- 多环境隔离实战(Namespace + Group)
- 动态刷新配置:@RefreshScope 的使用
- 企业级多服务配置策略建议
1. Nacos 简介与安装
- 阿里开源的服务发现与配置中心
- 统一替代 Eureka + Config + Bus
安装方式:
- 推荐使用 Docker:
访问:http://localhost:8848/nacos
默认账号密码:nacos / nacos
2. 配置中心使用原理(Nacos Config)
服务启动时会自动从 Nacos
读取远程配置内容,并注入到 Spring 环境中,优先级高于本地 application.yml
。Nacos 配置本质就是远程的 yml 文件,配置文件被拉取后,参与了合并到application.yml ,等价于本地的 application.yml 内容。
配置项组成如下:
-
Data ID
: 通常命名为${spring.application.name}-${profile}.yaml
-
Group
: 默认DEFAULT_GROUP
,也可自定义 -
Namespace
: 用于多环境隔离(如 dev、test、prod) -
服务启动后通过 HTTP 注册到 Nacos
-
服务列表保存在注册中心
-
服务间通过服务名调用(而非 IP)
3. 服务注册配置(Spring Boot 3)
文件名 | 加载时机 | 作用 |
---|---|---|
bootstrap.yml |
Spring Boot 初始化前 | 用于Spring Cloud 组件的初始化配置,常用于加载Nacos配置中心相关配置 |
application.yml |
Spring Boot 初始化中 | 本地服务配置(端口、数据库、日志等) |
注意:Spring Boot 3 后期支持通过 application.yml
的 spring.config.import
加载远程配置,bootstrap.yml
仍不可完全删除,除非你将配置中心导入写在 application.yml
中且不引用任何远程变量提前使用。
application.yml:
|
|
bootstrap.yml:
4. 多环境隔离实战(Namespace + Group)
在 Nacos 控制台创建命名空间:
- 名称:
开发环境
- ID(系统生成):
47bd187a-3446-43a7-8a56-573dc8abc147
然后配置:
|
|
说明:
config.import
: 表示从 Nacos 加载远程配置namespace
: 区分 dev/test/prod 的关键- Nacos 控制台需提前创建对应的
Data ID
,如:config-service-dev.yaml
5. 动态刷新配置 @RefreshScope 的使用
在需要动态刷新的配置 Bean 上添加注解:
修改 Nacos 配置后,发送刷新请求:
|
|
控制台输出即会变更。
成功拉取配置的日志标志:
|
|
6. 企业级多服务配置策略建议
方式 | 说明 |
---|---|
按服务拆分配置 | 每个服务独立一个 Data ID ,便于维护 |
使用 profile 区分 | xxx-dev.yaml 、xxx-prod.yaml 命名 |
配置加密支持 | 使用 KMS、SM4 等加密敏感配置 |
配置审计 | 配置变更记录、修改人、时间等审计 |
总结
使用 Nacos 配置中心可以显著提升微服务架构下配置管理的集中性、灵活性和安全性。配合 @RefreshScope
实现配置的动态刷新,大幅降低维护成本。
文章作者 会写代码的小郎中
上次更新 2025-07-31
许可协议 CC BY-NC-ND 4.0