一、nacos简介
nacos是alibaba开源的一款具有分布式服务注册与发现、配置等功能的组件,熟悉分布式spring cloud的小伙伴一定对eureka、config不陌生。在没有nacos的时候,我们可能选择的组件eureka作为服务注册中心,总体使用感觉一般般。其次就是如果要对服务进行配置的话,还得引入config,这只是对单机下服务进行配置与刷新,如果要对集群服务进行配置刷新的话,还得额外引入bus、mq等相关组件,整体变得更加复杂。而在这里我们只是用nacos,就能实现服务注册、配置等功能,使用上更精近一步,架构更加清晰。
二、配置nacos在配置文件中
依赖导入,需要先将服务注册进nacos,再通过nacos进行配置管理
<!--将服务注册进nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> </dependency> <!--使用nacos作为配置中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.0.RELEASE</version> </dependency>
在application.yml文件中进行配置
server: port: 8080 spring: application: name: xpc cloud: nacos: discovery: server-addr: localhost:8848 #服务注册地址 config: server-addr: localhost:8848 #配置中心地址 file-extension: yml #m默认读取的是配置中心文件类型为properties的文件,如果像读取其他格式需要在此处指定
然后在nacos上创建配置文件xpc.yml
Data ID 可以默认生成
Group:nacos默认读取的是DEFAULT_GROUP
三、远程配置文件读取
编写一个controller,读取远程key属性
@RefreshScope的作用:如果远程配置文件内容进行了更新,加上该注解可以获取到修改之后的内容值。
@RestController @RefreshScope public class TestController { @Value("${key}") private String key; @GetMapping("/get-key") public String getKey(){ return key; } }