SpringCloud-Config 配置中心 (2)

3、编写 controller,获取配置中心中的文件属性

@RestController public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/info") public String getConfigInfo(){ return configInfo; } }

4、浏览器输入地址访问

SpringCloud-Config 配置中心

如果需要获取其它配置文件内容,只需要修改 bootstrap.yml 中的 label、name、profile 即可

存在的问题?

当配置中心的配置文件内容发生改动,服务端和客户端是否能够动态的获取?

经测试,服务端可以动态的获取,客户端不能!

因为服务端直接从配置中心获取,而客户端是从上下文环境中获取已加载的属性,配置中心修改后,由于服务没有重启,获取的仍然是之前的属性。

Config 动态刷新

对客户端进行修改

1、需要引入 actuator 依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>

2、添加如下配置

# 暴露监控端点 management: endpoints: web: exposure: include: "*"

3、在 Controller 上添加注解 @RefreshScope

4、刷新服务端后,发送 Post 请求,curl -X POST :3355/actuator/refresh,客户端刷新即可获取最新内容,避免了服务重启

SpringCloud-Config 配置中心

仍然存在的问题?

每个微服务都需要发送一次 POST 请求。

如何广播通知?一次通知,处处生效

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygwxy.html