Nacos多配置文件、共享配置文件
配置文件的读取方式
nacos 配置中心通过 namespace、dataId 和 group 来唯一确定一条配置。(地址默认locahost:8848)
Namespace:即命名空间。默认的命名空间为 public,我们可以在 Nacos 控制台中新建命名空间;
dataId:即配置文件名称
Group : 即 配 置 分 组 , 默 认 为 DEFAULT_GROUP , 可 以 通 过spring.cloud.nacos.config.group 配置。
其中:dataId 是最关键的配置字段:格式如下:
- ${prefix} - ${spring.profiles.active} . ${file-extension}
说明:
prefix 默 认 为 spring.application.name 的 值 , 也 可 以 通 过 配 置 项spring.cloud.nacos.config.prefix 来配置;
spring.profiles.active 即 为 当 前 环 境 对 应 的 profile 。 注 意 , 当spring.profiles.active 为空时,对应的连接符-也将不存在,dataId 的拼接格式变成
p
r
e
f
i
x
.
{prefix}.
prefix.{file-extension};
file-extension 为 配 置 内 容 的 数 据 格 式 , 可 以 通 过 配 置 项spring.cloud.nacos.config.file-extension 来配置。
这就是上面我们为什么能获得到配置的原因了。
注意:在写 dataId 的时候一定要添加文件类型后缀
Eg: nacos-config-dev.yml
配置文件划分
Nacos 配置中心的 namespace、dataId 和 group 可以方便灵活地划分配置。比如,我们现在有一个项目需要开发,项目名称为 bjpowernode,项目开发人员分为两个组:GROUP_A 和GROUP_B,项目分为三个环境:开发环境 dev、测试环境 test 和生产环境 prod。
- powernode-> GRUOR_A-> dev
在 Nacos 中新建一个 powernode 的命名空间
点击新添加一个命名空间
填写信息后确认
他给我们生成了一个 id,要记住这个 id:5510ef39-ca9a-4f5d-87ba-7fb2afbf7035
在 Nacos 中新建一个配置文件 config-client-dev.yml
注意先选择 powernode 的命名空间,然后在选择添加配置文件
填写信息
点击完成
修改 config-client-a 项目的配置文件
server:
port: 8080
spring:
application:
name: config-client-a
cloud:
nacos:
config:
server-addr: localhost:8848 # server地址
namespace: 5510ef39-ca9a-4f5d-87ba-7fb2afbf7035 # 命名空间 注意使用 id
group: GROUP_A # 组别
prefix: config-client # 配置文件前缀,如果不写 默认使用${spring.application.name}的值
file-extension: yml # 后缀 文件格式
profiles:
active: dev # spring 的环境配置
重启 nacos-config-client 项目测试
访问: http://localhost:8080/heroInfo
获取多配置文件
除了通过上面的方式指定一个唯一配置外,我们还可以同时获取多个配置文件的内容。提供这个功能 可以再次封装和抽象配置文件管理
在 Nacos 中新建两个配置文件
在 powernode 命名空间,继续点击添加两个配置文件
添加一个配置文件 config-a.yml
再添加一个配置文件 config-b.yml
修改 config-client-a 项目的配置文件
cloud:
nacos:
config:
server-addr: localhost:8848
namespace: 5510ef39-ca9a-4f5d-87ba-7fb2afbf7035 # 命名空间 注意使用 id
extension-configs: # 配置多个配置文件 数组形式
- data-id: config-a.yml # 配置 id,必须要加文件后缀
group: GROUP_A # 组别
refresh: true # 是否支持刷新
- data-id: config-b.yml
group: GROUP_B
refresh: false
说明:
spring.cloud.nacos.config.extension-configs[n].dataId , 指 定 多 个 配 置 的dataId,必须包含文件格式,支持 properties、yaml 或 yml;
spring.cloud.nacos.config.extension-configs[n].group,指定分组;
spring.cloud.nacos.config.extension-configs[n].refresh,是否支持刷新。上面的配置中,我们分别从 DEFAULT_GROUP 中获取了 config-a.yml 和 config-b.yml 配置内容,并且 config-a.yml 支持刷新,config-b.yml 不支持刷新。
注意:
没有 namespace 的配置,言外之意就是 Nacos 目前还不支持多个配置指定不同的命名空间。
共享配置文件
想把某些共有的数据抽离出来 ,放入共享配置文件中,如redis、mybatis数据源之类的…
直接修改bootstrap.yml文件即可
两端的配置文件写什么内容
本地的 bootstrap.yml(应用名称,配置文件中心(注册中心地址),读取的配置文件名称信息)
远端的配置文件(端口,数据源,redis,mq,mybatis,Swagger…) 为了方便去动态刷新和修改
Spring Cloud Alibaba Nacos Config 常用的配置
更多推荐
所有评论(0)