nacos-config搭建

重点:文件加载优先级 bootstrap.yml  》 工程应用下application.yml > share.yml >  share2.yml > common.yml  > common2.yml > nacos-user-service,yml > nacos-user-service-dev.yml 

可知相同配置项覆盖顺序 nacos-user-service-dev.yml > nacos-user-service,yml》common2.yml> common.yml > share2.yml > share.yml>工程应用下application.yml > 工程应用下bootstrap.yml

引入依赖:

<!--nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--加载bootstrp启动 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

新增bootstrap.yml文件
server:
port: 8071
spring:
application:
name: nacos-user-service
profiles:
active: dev
cloud:
nacos:
discovery:
# Nacos认证信息
username: nacos
password: nacos
# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
server-addr: http://localhost:8848
# 注册到 nacos 的指定 namespace,默认为 public
namespace: public
#配置中心
config:
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
# Nacos认证信息
username: nacos
password: nacos
context-path: nacos
# 设置配置中心服务端地址
server-addr: http://localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
namespace:
#文件结尾
file-extension: yml
group: dev #所属分组
#扩展配置 从上往下依次加载
extension-configs:
- dataId: common.yml
group: dev
refresh: true
- dataId: common2.yml
group: dev
refresh: true
# dataId: naco-user-service-datasource2.yml
# group: dev
# refresh: true
#共享配置 从上往下依次加载
shared-configs:
- dataId: share.yml
group: dev
refresh: true
- dataId: share2.yml
group: dev
refresh: true
# config:
# import: nacos:nacos-config-example.properties?refresh=true
testConfigValue: aaaaa22
testconfigValue: bbbbb23
在nacos配置中心新增文件用于测试

 

此时,微服务应用中存在4个文件bootstrap.yml,应用目录下的application.yml nacos-config配置中心中的group:dev下的nacos-user-service.yml和common.yml
加载文件顺序为:优先加载bootstrap.yml 然后加载应用目录下的application.yml 最后加载nacos-config配置中心的nacos-user-service.yml
测试如下:

发布一个http服务接口,打印从配置文件中load的常量
bootstrap.yml中配置的是
testConfigValue: aaaaa22
testconfigValue: bbbbb23
application.yml中配置的是
testConfigValue: a1
testconfigValue: b1
nacos-user-service-dev.yml中配置的是
没有配置该常量

 访问接口:可见是读取的应用目录下的参数

 然后再nacos-user-service-dev.yml中增加常量

testConfigValue: aaaaa12
testconfigValue: bbbbb13
再访问服务

 如果在 common.yml中配置 且取消nacos-user-service-dev.yml中配置项

testConfigValue: aaaaa52

testconfigValue: bbbbb53

 

增加common2.yml 且取消nacos-user-service-dev.yml中配置项

testConfigValue: aaaaa62

testconfigValue: bbbbb63

----------------------------------------------------------------------------------------------------------------

增加shared-configs 

share.yml    cccc1  dddd1

share2.yml  cccc11 dddd22

将common.yml和common2.yml中的常量注释掉

 

 可知覆盖顺序nacos-user-service-dev.yml > nacos-user-service,yml》common2.yml> common.yml > share2.yml > share1.yml>工程应用下application.yml >bootstrap.yml

加载顺序则相反

 

posted on 2024-06-18 18:24  丶柚子  阅读(2)  评论(0编辑  收藏  举报

导航