Nacos配置管理
1、统一配置管理
配置更改热更新

1.1 添加配置信息
有热更新需求的配置,通过nacos进行配置,而不是所有的配置都放在nacos中配置。


1.2 配置获取的步骤
1.2.1 无nacos配置时
1.2.2 有nacos配置时
读取nacos配置新信息就需要一些信息:
- 去哪读(nacos地址)
- 读取谁
bootstrap.yml的优先级高于application.yml,项目启动会优先读取bootstrap.yml。所以将nacos地址、配置文件等相关信息配置在bootstrap.yml中
1.3 获取配置实现
1.3.1 引入nacos的配置管理客户端依赖
1 |
|
1.3.2 添加bootstrap.yml文件
在user-service中的resource目录下,添加一个bootstrap.yml文件,该文件是引导文件,优先级高于application.yml:
1 |
|
1.3.3 测试
在user-service中将pattern.dateformat这个属性注入到UserController中做测试:
1 |
|
注意:@Value
注解使用spring的,而不是loombook的
nacos建立配置后需要重启nacos,否则@Value
注解不生效
1.4 总结
将配置交给Nacos管理的步骤
① 在Nacos中添加配置文件
② 在微服务中引入nacos的config依赖
③ 在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件
2、配置热更新
Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:
2.1 使用@RefreshScope
注解
在@Value
注入的变量所在类上添加注解@RefreshScope
:
1 |
|
2.2 使用@ConfigurationProperties
注解
1 |
|
2.3 注意事项
• 不是所有的配置都适合放到配置中心,维护起来比较麻烦
• 建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置
3、配置共享
3.1 多环境配置共享
微服务启动时会从nacos读取多个配置文件:
- [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml 环境配置
- [spring.application.name].yaml,例如:userservice.yaml 默认配置,多环境共享
无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。
3.2 多种配置的优先级
[服务名]-[环境].yaml>[服务名].yaml > 本地配置

4、搭建Nacos集群
- 搭建MySQL集群并初始化数据库表
- 下载解压nacos
- 修改集群配置(节点信息)、数据库配置
- 分别启动多个nacos节点
- nginx反向代理
点击这里查看实例代码
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!