九、通过Nacos进行服务配置
2020-12-15 本文已影响0人
轻轻敲醒沉睡的心灵
Nacos服务注册发现参考:https://www.jianshu.com/p/ba298e0a2eab
1. 服务中引入Nacos配置包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 本地bootstrap.yml(bootstrap.properties)
增加配置
# spring
spring:
profiles:
active: dev
# 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息
application:
name: car-management-service-dict
cloud:
nacos:
# 服务注册发现
discovery:
server-addr: www.baidu.com:8848
# 服务配置
config:
server-addr: www.baidu.com:8848
file-extension: yaml
3. 在nacos中添加配置
![](https://img.haomeiwen.com/i22972070/ad5aa0dbdc0680a4.png)
-
-
Data ID命名规则:
${prefix}-${spring.profiles.active}.${file-extension}
-
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置 -
spring.profiles.active
即为当前环境对应的 profile,在bootstrap.yml
中配置:详情可以参考 Spring Boot文档。 注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
-
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型
-
Data ID命名规则:
-
Group可以使用默认的,也可以自定义,但是要和
bootstrap.yml
中的group
一致,(若有gateway网关服务,gateway服务必须要和其他微服务在同一组,才能找到路由地址)
-
Group可以使用默认的,也可以自定义,但是要和
- 选好格式,记得Data ID中要有这个格式
- 填写配置信息
4. 配置自动更新
使用Spring Cloud 原生注解 @RefreshScope
,这样通过@Value
注解取到的值是更新过的(@ConfigProperties
注解不是)
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}