Version: Next
Config 手动刷新
在远程 Git 仓库更新配置之后
- 避免
Config Client 3355
每次都要重启才能应用新配置的问题- 确保
Config Client 3355
引入了actuator
Maven 依赖- 修改 YML,暴露 actuator 监控端口
bootstrap.ymlserver:port: 3355spring:application:name: config-clientcloud:#Config客户端配置config:label: master #分支名称name: config #配置文件名称profile: dev #读取后缀名称 上诉3个综合就是 master分支上 config-dev.ymluri: http://localhost:3344 # spring cloud config server urieureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka/#暴露 actuator 监控端点 让配置修改可以被监控management:endpoints:web:exposure:include: "*"
- 修改 Controller,添加
@RefreshScope
注解Controller@RestController@RefreshScopepublic class ConfigClientController {@Value("${config.info}") // 与远程 git 仓库上 yml 文件中的属性一致,就读取这个配置属性private String configInfo;@GetMapping("/configInfo")public String getConfigInfo() {return configInfo;}}
手动刷新
做了这些以后,3355 依然不能动态刷新远程 Git 仓库上的新配置
- 需要有人用
POST
请求手动刷新 3355 Post
请求http://localhost:3355/actuator/refresh
自动刷新
- 手动刷新太蠢了
- 问题一:有 100 个微服务,刷到吐
- 问题二:更新 部分 微服务的配置,手动挑选出这些微服务,挑吐了
- 为了解决这些问题,需要使用:
Spring Cloud Bus 消息总线