nacos配置中心使用
nacos可以用来做配置中心,进行配置的热更新
使用nacos做配置中心的流程
原项目启动流程
项目启动 -> 加载application.yml配置文件 -> 创建Spring容器 -> 加载Bean
使用nacos做配置中心的启动流程
项目启动 -> 读取bootstrap.yml -> 拉取nacos配置文件 -> 加载application.yml
-> 创建Spring容器 -> 加载Bean
进行读取,nacos当前服务环境配置文件 > nacos当前服务配置文件 > 本地配置

nacos配置文件与bootstrap文件
- 添加依赖
<!--添加nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 创建bootstrap.yml
根据spring.cloud.nacos.server-addr获取nacos地址,再根据${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id,来读取配置。spring: application: name: userservice # 服务名称 profiles: active: dev #开发环境,这里是dev cloud: nacos: server-addr: localhost:8848 # Nacos地址 config: file-extension: yaml # 文件后缀
读取配置
使用 @Value("${配置项}")
热更新配置
1. @Value注入的变量所在类上加@RefreshScope注解
2. 添加读取类,类上添加注解@ConfigurationProperties(prefix = "前缀配置项")
将类注入到Spring中以方便使用,添加set、get,成员变量名即要读取的配置项
在使用的地方,注入配置读取类对象,通过get读取类中配置
配置共享
包含环境的服务配置,优先级最高
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
不包含环境的服务配置,可以进行配置共享,即同一服务名的不同环境都可以使用该配置
${srping.application.name}.${spring.cloud.nacos.config.file.extension}
如果同一服务启动不同的环境和端口
1. VMOptions 配置-Dserver.port = 端口号
2. -Dspring.profiles.active=dev OR 更改active profile

浙公网安备 33010602011771号