springcloud之Config初识篇—客户端热加载

QA:根据上一篇文章客户端已经可以获取到远程仓库的文件信息,此时我们修改远程仓库的配置文件信息,项目是否能获取到呢?

  • 服务端请求远程仓库获取到最新的文件信息
  • 客户端请求服务端获取的还是之前的历史信息

原因:客户端项目处于运行状态时获取的信息无法直接加载到正在运行的spring环境中。

此时我们将客户端服务重新启动就可以获取最新的配置信息。但这又存在一个严重的问题:没有实现热部署加载,我们希望替换完远程仓库的配置文件后系统可以实现热部署加载替换运行环境中原有的配置文件的内容而不是需要我们重新启动服务,在海量的微服务项目中将所有项目重启一遍也是一个很大的工作量  o(╥﹏╥)o 此时我们需要实现客户端的热加载操作。

1、添加maven依赖。


            org.springframework.boot
            spring-boot-starter-actuator
        

2、添加yml配置

management:
  endpoints:
    web:
      exposure:
        #yml加双引号,properties不用加
        include: "*"

3、在项目中需要获取配置文件信息的类上添加@RefreshScope注解

springcloud之Config初识篇—客户端热加载_第1张图片

在我们想要加载最新的远程仓库文件到当前服务中时调用一个请求:
http://ip:port/actuator/refresh   Post请求
调用该方法项目会去请求configSever获取到远程仓库文件的最新信息并加载到运行环境中。

PS:加载的时候当前服务是不可用的因为服务会重新编译文件和运行环境中的信息。

你可能感兴趣的:(config,springcloud)