SpringCloud(十一)——nacos替换远程配置版本库
前言
上一篇笔记中说过,nacos组件可以完成两个功能,其一是上一篇笔记中记录的注册中心功能;其二就是本篇笔记将要记录的统一配置中心功能。
简介
先简单介绍一下nacos作为统一配置中心和之前的configserver
有什么区别:
- nacos管理配置文件的方式是在自己所在的服务器上形成一个版本库,因此不需要再创建远程版本库。
- 继续解读第一条:因在nacos内部生成版本库,所以nacos在管理配置文件的时候也存在版本控制。
配置nacos统一配置中心
本篇笔记在nacos配置安装并启动为前提
nacos远端配置
- nacos远端配置管理:
在nacos客户端主页中进行以下操作:
在新建配置中要注意以下几点:
将远端配置文件放在该模块中提交:
server.port=8084
spring.application.name=CONFIGCLIENT
# 总路径配置
spring.cloud.nacos.server-addr=${nacos_ip}:8848
customer.username=Bob
本地服务配置
引入依赖:
<!--引入nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!--注意剔除ribbon-->
<exclusions>
<exclusion>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--nacos config client-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--bootstrap-->
<!--直接远程获取配置的情况下,需要补充该依赖,同时将配置文件名修改为 bootstrap.properties/yml-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
书写配置
# 配置nacos配置中心地址
spring.cloud.nacos.config.server-addr=${nacos_ip}:8848
# 在配置中心的哪个组获取
spring.cloud.nacos.config.group=DEFAULT_GROUP
# 根据文件名获取对应配置
spring.cloud.nacos.config.name=configclient-dev
# 根据文件后缀获取对应配置文件
spring.cloud.nacos.config.file-extension=properties
动态获取修改的配置
@RestController
// nacos可以在远端配置文件修改的时候动态获取修改后的配置文件,这一点在控制台中日志有所体现,但是控制器并没有使用新的配置,大家最好加上这个杀心Scope域的注解
@RefreshScope
public class DemoController {
@Value("${customer.username}")
private String username;
@GetMapping("/demo")
public String demo(){
System.out.println("demo is ok!");
return "demo is ok !, username : " + username;
}
}
组件使用
在nacos客户端中修改配置文件,然后不要重启项目,直接访问对应的路径,查看修改后的配置文件是否被应用。
总结
再次重申,SpringCloudAlibaba组件系列笔记是基于之前SpringCloud的基础之上,所以之前笔记中记录的一些要点或逻辑概念在这里不会再重申。