实现SpringCloud Config 客户端自动刷新

一、简介

在使用SpringCloud Config客户端时,如果Config服务端配置文件发现了变化,如果客户端需要同步的话,需要手动的访问客户端的/refresh(POST请求)端点来刷新客户端配置

 

使用定时器的方式来解决手动刷新

 

1、找到类org.springframework.cloud.endpoint.RefreshEndpoint

 

2、在类中的refresh方法打上一个断点

 

3、使用Postman工具访问这个断点

访问请求:http://localhost:8080/refresh

 

 

4、发现请求进入到了这个方法中

 

5、结论

只要是访问/refresh地址就会执行这个方法,那么是否可以自己写一个定时器去执行这个方法,达到刷新配置文件的目的

这个方法的执行,实则是contextRefresher执行了refresh方法,才达到刷新配置文件的效果,而contextRefresher是通过构造器注入的,那么我们在其他的方也想使用这个对象的话,只需要加入@Autowired或者是@Resource即可

 

6、编写Configuration

具体实现:只需要将AutoRefreshConfiguration与启动类能扫描到的地方即可

/**
 * 类描述: 实现自动刷新客户端配置
 *
 * @author wallfacers
 * @date 2018/9/12 22:04
 * @email <a href="wallfacerswu@gamil.com">wallfacers</a>
 * @sine 1.8
 */
@Configuration
public class AutoRefreshConfiguration {

    @Autowired
    private ContextRefresher contextRefresher;

    /**
     * 定时去执行某个方法,refresh方法可以让客户端去拉取配置文件
     */
    @Scheduled(fixedRate = 2000L)
    public void autoRefreshConfig() {
        contextRefresher.refresh();
    }

}

 

7、完整代码

https://github.com/wallfacers/spring-cloud-test/tree/master/spring-cloud-autorefresh-config

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值