概述
背景
使用Spring Cloud Config Server,
启动Service时会从配置中心取配置文件,并注入到应用中,如果在Service运行过程中想更新配置,需要使用Spring Cloud Bus配合实现实时更新。
实现原理
需要借助RabbitMQ等消息中间件来实现服务间的通讯
ConfigServer改造
目标:使ConfigServer暴露bus-refresh接口,通过bus通知服务更新配置
1. pom.xml增加以下依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2. 配置文件中配置暴露接口
management.endpoints.web.exposure.include=bus-refresh
Service改造
1. pom.xml增加以下依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2. 通过@RefreshScope声明配置刷新时需要重新注入
@RefreshScope @Controller public class LblController {
测试
1. 修改git仓库上的配置文件
Service配置没有更新
2. 调用http://localhost:8081/actuator/bus-refresh(POST)
Service配置更新
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注靠谱客的更多内容!
最后
以上就是炙热魔镜为你收集整理的Java Spring Cloud Bus 实现配置实时更新详解的全部内容,希望文章能够帮你解决Java Spring Cloud Bus 实现配置实时更新详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复