注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。
接下来是配置热更新的步骤。
从微服务拉取配置
微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。
但如果尚未读取application.yml,又如何得知nacos地址呢?
因此spring引入了一种新的配置文件:bootstrap.yml文件,会在application.yml之前被读取,流程如下:
1)引入nacos-config依赖
首先,在消费者服务中,引入nacos-config的客户端依赖:
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
添加bootstrap.yml
spring:
application:
name: userservice # 服务名
cloud:
nacos:
config:
server-addr: localhost:8848 # nacos 配置中心地址
file-extension: yml # 文件扩展名
读取nacos配置
在消费者中的UserController中添加业务逻辑,读取 jdbc.username 配置:
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
//.. 省略之前代码
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@GetMapping("/config")
public String config(){
return username+" "+password;
}
}
over