2.3 Nacos配置管理
Nacos可以将配置集中管理,也可以在配置变更时,及时通知微服务,实现配置的热更新。
2.3.1 配置管理
上图第一行的流程为常规配置文件读取流程,现在由于需要读取nacos配置中心内的文件,需要额外弄一个bootstarp.yml;
bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml:
添加依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
添加bootstrap.yml文件
spring:application:name: userserviceprofiles:active: dev #环境cloud:nacos:server-addr: localhost:8848 #nacos地址config:file-extension: yaml #文件后缀名
通过value注解成功读取到nacos的配置
@Value("${pattern.dateformat}")private String dateformat;@GetMapping("now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));}
2.3.2 配置热更新
方式一:在@Value注入的变量所在类上添加注解@RefreshScope
方式二:使用@ConfigurationProperties注解
@Data
@Component
@ConfigurationProperties(prefix="pattern")
public class PatternProperties {private String dateformat;
}
2.3.3 多环境配置共享
优先级排序:
服务名-profile.yaml >服务名称.yaml > 本地配置
微服务会从nacos读取的配置文件:
[服务名]-[spring.profile.active].yaml,环境配置
[服务名].yaml,默认配置,多环境共享
优先级:
[服务名]-[环境].yaml >[服务名].yaml > 本地配置