您的当前位置:首页正文

Nacos多配置文件、共享配置文件

2023-12-07 来源:我们爱旅游

配置文件的读取方式

 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

配置文件划分

  • powernode-> GRUOR_A-> dev

在 Nacos 中新建一个 powernode 的命名空间

在 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文件即可

两端的配置文件写什么内容

远端的配置文件(端口,数据源,redis,mq,mybatis,Swagger…) 为了方便去动态刷新和修改

Spring Cloud Alibaba Nacos Config 常用的配置

因篇幅问题不能全部显示,请点此查看更多更全内容