1Nacos 客户端使用 · SpringCloud微服务实战 · 看云
导航
本节代码地址
GitHub:https://github.com/xuyisu/fw-sping-cloud/tree/master/fw-cloud-config-center/fw-cloud-nacos-client
前面在注册中心章节已经讲Nacos 的介绍和基本使用讲解了,下面我们就直接来讲Nacos 的配置中心功能,这一点是很不错的,把注册中心和配置中心功能合并在一起,减少了运维部署。
1. 新建项目
为了方便后面代码阅读,我们单独建一个模块
2. maven 配置
这里需要引入spring-cloud-starter-alibaba-nacos-config来拉去和监听nacos的变化。另外这里和上节apollo 不同的是我们多引入了spring-cloud-starter-netflix-eureka-client,实现我们把配置放在配置配置中心,观察能否注册到Eureka上,上节apollo 的演示引入这个包也可以实现相同的效果。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
3. 应用配置
配置中需要配置nacos的地址、分组名称、配置名称、以及配置类型
spring:
cloud:
nacos:
config:
server-addr: ${nacos.ip}:8848
group: DEFAULT_GROUP
prefix: application
file-extension: yaml
4. 控制层代码
这里和apollo不同的是需要加上@RefreshScope,用于监听配置修改的变化
@RestController
@RequestMapping("/config")
@RefreshScope
public class TestController {
@Value("${fwcloud.config.name:test}")
private String configName;
@RequestMapping("/get")
public String get() {
return configName;
}
}
5. 启动类
因为我们引入了eureka客户端的包,因此我们要使用的话需要加上@EnableDiscoveryClient注解
@EnableDiscoveryClient
@SpringBootApplication
public class FwNacosClientApplication {
public static void main(String[] args) {
SpringApplication.run(FwNacosClientApplication.class, args);
}
}
6. 启动应用
可以看到eureka上已经注册当前服务
浏览器或Postman 输入http://localhost:8774/config/get
7. 变化值
在nacos中修改fwcloud.config.name的值为nacos20200314
变更的时候可以看到控制台的变化
2020-03-14 16:52:17.932 INFO 5952 --- [-localhost_8848] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [fwcloud.config.name]



