不同环境需要不同的配置,配置属性需要动态刷新。
微服务配置管理
使用Nacos进行配置管理
引入依赖spring-cloud-starter-alibaba-nacos-config
配置bootstrap.yml
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
aplication:
name: content-center
profiles:
active: dev
之后在nacos的控制台中配置相应的数据即可
配置中心的namespace、group以及Date
我们可以通过配置不同的dateID、group、namespace来进行不同配置文件之间的切换,比如说我们想全部切换成groupA下边的test、dev、prod,就可以改变group,同样的道理,我们可以切换namespace来达到相同的目的。
namespace、group都可以在nacos中进行配置
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
group: groupA
namespace: xxxx(序列号)
aplication:
name: content-center
profiles:
active: dev
配置属性的动态刷新与回滚
- 刷新:在要想刷新的类上添加@ReferenceScope
- 回滚:在控制台中回滚即可
配置共享
读取优先级 shared-dataids < ext-config < 自动
引导上下文
bootstarp就是一个连接外部服务器,获取配置文件的引导上下文。
默认远程配置优先级高于本地配置,上图是配置在外部配置文件中修改优先级的。
Nacos数据持久化(重点)
nacos会在本地保存配置信息,但是这个数据库是内嵌式的,不能用于生产环境,所以要将配置文件持久化到外部数据库中,搭建生产可用的Nacos集群。
具体步骤为,搭建Nginx代理服务器,搭建Nacos集群,搭建MySQL集群。将MySQL集群配置在Nacos文件中,将Nacos集群端口配置在Nginx文件中,要进行配置文件管理的服务直接将配置中心地址改为Nginx地址,就可以实现整个集群搭建。
实践总结
- 能放在本地,不放在外部
- 尽量规避优先级
- 最好每一个配置属性加上注释
- 配置管理人员尽量少