SpringCloud实现Config配置中心的手动刷新

背景

使用了SpringCloud的原生配置中心config后,会发现当配置文件更新后,配置中心的客户端无法获取更新后的信息,这是由于配置中心的缓存机制导致的,而SpringCloud也提供了刷新的两种方式,今天就处记录一下其中一种——手动刷新的配置过程。

配置

  • 手动刷新是依赖于健康检查actuator实现的。
  • 以下均是在客户端操作的
  • 此处已默认搭建好了配置中心
添加依赖
 <!--健康检查-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
添加配置
  • 否则Actuator只会默认打开healthinfo两个端口
#启用监控 默认打开health和info,* 表示开放所有端口
management.endpoints.web.exposure.include= *
#打印健康信息详情,
management.endpoint.health.show-details=always
添加注解
  • 该注解@RefreshScope处代理的bean会在调用/refresh借口时被清空
/**
 * @RefreshScope 配合actuator实现自动刷新配置中心
 */
@RefreshScope
@RestController
public class ClientController {

    @Autowired
    private GirlProperties girlProperties;

    @GetMapping("/hello")
    public String getProperties(){
       return girlProperties.toString();
    }
}
测试
1.访问获取配置文件的接口

在这里插入图片描述

2.修改git中的配置文件

在这里插入图片描述

3.再次访问获取配置文件的接口,会发现信息并没有改变

在这里插入图片描述

4.调用http://localhost:8092/actuator/refresh
  • 为配置中心客户端的ip和端口
  • 通过post方式访问
  • 成功后返回修改的文件信息
    在这里插入图片描述
5.这次访问时则成功获取最新的数据

在这里插入图片描述

特点

通过配置过程就会发现config手动刷新文件的方式只只适用于极少的客户端存在的情况,否则每次更新文件后都要调用一次刷新,反而在客户端过多的情况下加重服务的负担,所以配置中心更适合自动刷新的方式。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值