009-配置管理-Nacos
banner 2022-03-14 22:02:39 微服务SpringCloudSpringCloudAlibabaNacos
# 一、为什么要实现配置管理
- 不同环境,不同配置
- 配置属性动态刷新
# 二、使用Nacos管理配置
# 2.1 导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
</dependency>
1
2
3
4
2
3
4
# 2.2 编写配置 bootstrap.yml
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
application:
name: content-center
profiles:
active: dev
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 2.3 登录Nacos后台,添加配置
Group ID:(spring.application.name)+(spring.profiiles.active)+(.)+(spring.cloud.nacos.config.file-extension)
# 2.4 配置动态刷新
配置的动态刷新,仅需要使用@RefreshScope
注解即可。
# 2.5 同一个应用在不同环境下的配置共享
2022-03-08 01:33:12.022 INFO 33489 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='content-center-dev.yaml'}, NacosPropertySource {name='content-center.yaml'}]}
创建一个 content-center.yaml
# 2.6 引导上下文
bootstrap.yml 就是引导上下文的配置文件。对于应用,就是来连接Nacos以读取Nacos中的配置。
远程配置(Nacos) & 本地配置优先级
默认情况下,远程配置优先级较高哦
如下的配置文件必须放在远程配置中才生效
spring:
cloud:
nacos:
config:
# 是否允许本地覆盖远程配置
allow-override: true
# 是否一切以本地配置为准,默认false
override-none: false
# 系统环境变量或系统属性才能覆盖远程文件的配置
# 本地配置文件中配置优先级低于远程配置,默认 true
override-system-properties: true
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 三、 Nacos数据持久化
# 3.1 作为服务发现组件
其数据都是存在本地路径:
~/nacos/naming/public
1
# 3.2 作为配置服务器
数据分成两部分
- Nacos web ui中配置的配置数据
$NACOS_HOME/data/derby-data
1
- 配置属性快照
~/nacos/config
1