SpringCloud Config客户端配置动态刷新
上一篇我们发现,我们在gitee中修改了yml的参数,但是config客户端的配置并有刷新,只有config服务端的配置被刷新了。
目前的解决办法是调用spring-boot-starter-actuator的接口对客户端的配置进行刷新,我个人认为这个地方是SpringCloud Config欠缺的地方,我们在修改完Gitee仓库的配置后还需要我们依次调用这个接口。
Config客户端修改bootstrap.yml
server:
port: 3355
spring:
application:
name: cloud-config-client
cloud:
#Config客户端配置
config:
label: master #分支名称
name: config #配置文件名称
profile: dev #读取后缀名称 上述3个综合:master分支上config-dev.yml的配置文件被读取http://127.0.0.1:3344/master/config-dev.yml
uri: http://127.0.0.1:3344 #配置中心地址
#服务注册到eureka地址
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:7001/eureka
# 暴露监控端点
management:
endpoints:
web:
exposure:
include: "*"
Config客户端修改控制层
package com.gcl.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RefreshScope
@RestController
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping(value = "/configInfo")
public String getConfigInfo(){
return configInfo;
}
}
运行(我们上次已经将version改为2了,这次改为3)
3344服务端配置正常
3355客户端配置异常 (未调用刷新)
3355客户端配置正常 (调用刷新,注意是POST请求)