分布式微服务 - 4.配置中心 - 2.Nacos
项目示例:
- 项目示例 - 4.配置中心 - 1.Nacos
内容提要:
- 基本使用
文档:
nacos的下载启动、持久化和集群配置见之前服务注册中的分布式微服务 - 2.服务注册 - 5.Nacos
文章。
基本使用
nacos上配置文件的Data Id命名规则要遵循${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(yml) 类型。
使用步骤:
- 引入依赖:新版Spring Cloud禁用了bootstrap,需要引入依赖启动
xml
<!--Nacos的配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<!--新版Spring Cloud禁用了bootstrap,导入依赖启用bootstrap-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
- 配置信息:spring.application.name和nacos配置信息需要放在bootstrap配置中
yml
# bootstrap.yml
spring:
application:
name: nacos-config
cloud:
nacos:
config:
# nacos地址
server-addr: localhost:8848
# 可配置namespace和group
group: DEFAULT_GROUP
# 配置文件的类型
file-extension: yaml
yml
# application.yml
spring:
profiles:
active: test
- 动态刷新:nacos中配置信息改变时,会自动同步到微服务的配置中,但是@ConfigurationProperties或@Value读取配置信息到类属性上的值,不会自动更新,因此如果有读取到属性上时,需要在类上使用@RefreshScope来动态刷新配置信息的变化。