[toc]

一、config遇到的问题

1. 修改gitee配置文件

image.png

2. 刷新配置服务

地址:http://localhost:3344/config-dev.yaml
结果:发现配置服务立即更新
image.png

3. 刷新客户端

地址:http://localhost:3355/configInfo
结果:客户端配置没有更新
image.png

4. 此时解决方案

重新启动项目,拉取配置服务最新配置
image.png
刷新客户端地址,发现配置更新到最新:
image.png

5. 反思

有没有不重新启动项目,修改gitee实现配置更改

二、配置半自动更新

1. cloud-config-client-3355客户端新增依赖

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

2. cloud-config-client-3355客户端,yaml文件新增如下配置


management:
  endpoints:
    web:
      exposure:
        include: "*"

image.png

3. cloud-config-client-3355客户端,修改控制层

业务控制层添加注解@RefreshScope
image.png

三、测试

1. 启动模块

image.png

2. gitee修改配置文件

配置文件版本修改为3.0
image.png

3. 刷新配置服务

发现配置已经更改
image.png

4. 刷新客户端

发现配置没有改变
image.png

5. 解决方案

gitee修改好配置,服务端立即知悉,而客户端没有更改,这时需要有什么机制,触发或者通知客户端,配置已经修改了,要进行立即拉取最新配置。

6. 手动通知

通知地址:http://localhost:3355/actuator/refresh
通知类型:POST
通知结果:如下
image.png

7. 刷新客户端

发现配置已经更新到最新配置
image.png

8. 反思

虽然解决了项目重启,拉取最新配置,但是手动通知项目进行拉取,也是一项额外的工作量,那有没有更好的解决方案呢?

预知后事如何,且听下回分解!

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。