前言
上一节中我们简单实用nacos作为配置中心,实现了简单配置文件读取和实时刷新,本节主要讲解nacos配置文件的加载顺序。
内容
当你有多个生命周期的配置文件时候,如何去加载,哪个先去加载,怎么去区分不同的环境。
1.profile
新建工程:nacos-config-client-load并将其配置到父工程的model里面.然后重新工程发现加载
|
|
通过上面的启动日志我们知道,除了加载:nacos-config-client-load-dev.yml还会加载:nacos-config-client-load.yml
我们此时搜索data id发现控制台确实没有输出,这个说明我们在nacos配置文件是没有创建
我们创建
此时我们请求:
http://127.0.0.1:8056/test/config
结果:
nacos-config-client-load-dev.yml
如果我们删除nacos-config-client-load-dev.yml
应用控制台会打印日志:nacos-config-client-load-dev.yml
此时我们请求:
http://127.0.0.1:8056/test/config
结果:
nacos-config-client-load.yml
结论:
- 优先使用配置是 applicationname-profile
- 不存在时读取 applicationname
2.GROUP
2.1 简介
- 1.我们创建的配置文件,里面都有一个组的概念:Group,我们没有输入时候默认都是:DEFAULT_GROUP
- 2.组的概念主要是为了让我们创建的配置文件属于同一个组里面,各个应用之间的隔离都是可以通过这个属性来配置
- 3.那么我们怎样去声明加载哪一个组呢?
我们在配置文件添加group属性,group默认属性是:DEFAULT_GROUP
2.2 实践
- 1.修改bootstrap.yml配置文件
我们在配置文件中添加group属性,其值为:alibaba
此时重启服务时候发现其加载的data id不存在,访问:
http://127.0.0.1:8056/test/config输出结果是'空test‘
原因是我们在配置中心没有添加 组为:alibaba的配置文件
|
|
spring:
application:
name: nacos-config-client-load
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
namespace: NS
server:
port: 8056
```
此时重启服务发现我们没有产生data id
因为我们没有在nacos控制台创建NS下的配置文件
- 3.在nacos控制台下的NS命名空间下创建对应的配置文件
我们此时在控制台搜索data id发现还是没有对应文件生成。
- 4.我们修改下配置文件中namespace为命名空间ID
测试:
http://127.0.0.1:8056/test/config
返回:
nacos-config-client-load-NS.yml