目录与学习目标
1:什么是配置中心2:Nacos配置规则 3:Nacos界面操作 1:新建命名空间 2:在该命名空间下创建配置 3:创建配置4:测试改动效果
1:什么是配置中心
对于一个项目来说,每个项目肯定都有自己的配置文件,
可以配置文件可以是写在yml或者通过数据的形式与应用一起部署。
针对于SpringCloud体系,每个服务也都需要配置,那么需要有一个配置中心,
专门管理各个微应用的配置信息,并且在配置发送更新,马上可以读取到最新的配置信息。
2:Nacos配置规则
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix 默认为 spring.application.name 的值,
也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile。
file-exetension 为配置内容的数据格式,
可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
目前只支持 properties 和 yaml 类型。
注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
spring:
application:
name: server-name
cloud:
nacos:
discovery:
server-addr: nacos-host:nacos-port
config:
namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
server-addr: nacos-host:nacos-port
group: DEFAULT_GROUP
file-extension: yml
配置详细讲解
config:
#在nacos上空间地址(默认为public空间 则不需要填)
namespace: f3533721-4b21-4ef0-a373-e78b71f639c7
#nacos服务的地址
server-addr: nacos-host:nacos-port
#在nacos上设置的分组
group: DEFAULT_GROUP
#在nacos上设置的配置文件格式
file-extension: yml
spring.application.name 服务的名称
spring.cloud.nacos.config.prefix 配置文件的前缀(如没有这个 则使用默认是 服务的名称)
spring.cloud.nacos.config.file-extension 配置文件后缀,用于拼接配置配置文件名称
使用SpringCloudConfig这种统一配置时Spring Boot 配置文件的加载顺序,
依次为 bootstrap.properties -> bootstrap.yml
而Nacos不会读取 application.yml的配置 只会读取bootstrap.yml
因此需要把 application.yml 修改名称为 bootstrap.yml
3:Nacos界面操作
1:新建命名空间

2:在该命名空间下创建配置

3:创建配置

4:测试改动效果
@RefreshScope 注解,这个注解主要用于配置的自动更新,
即在Nacos中该项配置发生变化时,在接口中就能感知到,获取到最新的值。
请求完之后 修改nacos-provider 配置下 app version 的值 再次请求
根据返回结果发现已经动态刷新了
@RestController
@Slf4j
@RefreshScope
public class NacosConfig {
@Value("${app.version}")
private String version;
@GetMapping(value = "/config/version")
public String version() {
return "Hello Nacos Config " + version;
}
}
项目连接
请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/spring-cloud-alibaba-project
在service-provider-demo 模块下
在service-consumer-demo 模块下