nacos分布式配置
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件
什么是nacos
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
使用控制台发布配置
通过浏览器访问 http://127.0.0.1:8848/nacos ,访问 Nacos Server
注意:** Data ID 的默认扩展名为 .properties
,希望使用 YAML 配置,此处必须指明是 .yaml
修改客户端配置
创建名为 bootstrap.yaml
的配置文件并删除之前创建的 application.yml
配置文件
spring.application.name对应Data ID
spring.cloud.nacos.config.server-addr对应Nacos地址
spring.cloud.nacos.config.file-extension对应文件格式
注意:** Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties
-> bootstrap.yml
-> application.properties
-> application.yml
,其中 bootstrap.properties 配置为最高优先级
如需动态刷新效果,必须在需要的类上贴@RefreshScope标签,才能实时刷新配置文件
再次请求结果
踩坑记录
1、
DataId:
在Nacos-Server中新建配置,其中Data ID它的定义规则是: p r e f i x − {prefix}- prefix−{spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置。
spring.profiles.active 即为当前环境对应的 profile,可以通过配置项 spring.profiles.active 来配置。
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 prefix.{prefix}.prefix.{file-extension}
2、
新建命名空间会自动生成命名空间Id,若配置文件中使用的namespace为指定命名空间Id,则配置列表也要在指定命名空间进行配置