Spring Cloud教程 第十二弹 Spring Cloud Config整合Spring Cloud Bus实现配置动态刷新
admin
2024-04-15 13:14:35
0

Spring Cloud Config整合Spring Cloud Bus

  • 1、回顾
  • 2、手动刷新
  • 3、Spring Cloud Bus动态刷新配置

1、回顾

在上一弹:Spring Cloud教程 第十一弹 Spring Cloud Config连接git和数据库 中介绍了spring cloud config的基本使用,但是配置无法动态刷新,也就是说如果我更改了git或数据库中的配置,项目必须重新启动才能使新配置生效。

注意:

  • 更新配置后,调用config server的HTTP接口是可以获取到新配置的,这是因为config server会实时请求git或数据库,配置当然是最新的,但是config client是感知不到的

下面介绍两种不重启项目便可以刷新配置的方式:

  1. 手动刷新
  2. 整合Spring Cloud Bus实现动态刷新

2、手动刷新

步骤如下。

  1. config client项目的pom.xml中引入spring-boot-starter-actuator依赖,如下所示:
org.springframework.bootspring-boot-starter-actuator

  1. config client配置端点,如下所示:
management:endpoints:web:exposure:include: "*"
  1. 在需要动态刷新的Bean上打@RefreshScope,如下所示:
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;@RestController
@RefreshScope
public class DynamicRefreshController {@Value("${stuName:\"\"}")private String stuName;@GetMapping("/config")public void init(){System.out.println("stuName="+stuName);}
}
  1. 当修改git、数据库配置时,POST请求config client路径/actuator/refresh,即可手动刷新

3、Spring Cloud Bus动态刷新配置

Spring Cloud Bus 实现配置的动态刷新步骤:

  1. 当git中的配置发生改变后,向config server发送一个 POST请求,请求路径为/actuator/bus-refresh
  2. config server接收到请求后,会将该请求转发给服务总线Spring Cloud Bus
  3. Spring Cloud Bus接到消息后,生成Topic然后会通知给所有config client
  4. config client接收到通知,请求config server拉取最新配置

Spring Cloud Bus需要引入RabbitMQ或Kafka作为消息传输的媒介。

与手动刷新不同,动态刷新的改造主要在config server项目中。

步骤如下:

  1. config server项目中的pom.xml引入依赖,如下所示:
org.springframework.cloudspring-cloud-starter-bus-amqp

org.springframework.bootspring-boot-starter-actuator

  1. config server配置端点,如下所示:
management:endpoints:web:exposure:include: "*"
  1. 安装并运行RabbitMQ
    参考文章:RabbitMQ入门教程
  2. config server配置RabbitMQ
spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest

5.config client引入依赖:

org.springframework.cloudspring-cloud-starter-bus-amqp

  1. config client配置RabbitMQ
spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest

bus-refresh端点原理:

  • /actuator/bus-refresh端点清除RefreshScope缓存并且重新绑定@ConfigurationProperties

相关内容

热门资讯

刚收葡萄酒和威士忌,又瞄准黄酒... 在母公司完成对青岛饮料并购后,上市公司青岛啤酒又开始对外“买酒”,这次看中的是黄酒。 5月7日晚间,...
炒腐竹最简单的做法,炒腐竹最简... 炒腐竹最简单的做法教程 特点:食材简单、步骤少、耗时短,适合新手或快速备餐。 一、食材准备(2人份)...
痛心!30岁中国女游客五一期间... 5月7日 #一中国游客为捞相机 命丧87米深海底#的话题 引发关注 据悉,一名30岁的中国女游客在...
靖西崇左自驾游攻略:路线规划难... 启程:与天气预报的博弈(Departure: A Game with the Weather For...
【早安,海棠】5月必吃的几种水... 早安,海棠!‍ 今天是2025年5月7日‍ 星期三(农历四月初十) 海棠天气如何? 又有哪些健康小知...
摊煎饼,别光顾着调面糊,多加1... 哈喽,大家好,我又来教大家做快手早饭了。 今天教大家做薄薄脆脆的煎饼,搭配着蔬菜,用煎饼把配菜卷起来...
原创 麻... 麻辣肉片是一道经典的川菜,以其麻辣鲜香、肉质嫩滑而深受食客喜爱。这道菜的关键在于肉片的腌制、麻辣调料...
吐峪沟玩水胜地,春天溪涧清凉解... 一、初识吐峪沟 春天的气息悄然弥漫,阳光洒在大地上,为万物披上一层金色的薄纱。周末清晨,我和好友小林...
洪江融媒丨【不去远方 就来洪江... 今年“五一”假期,洪江市以丰富文旅活动与独特景观吸引游客60.96万人次,实现旅游收入10045.9...
贵阳各区市县“五一”旅游成绩单... 2025年“五一”假期,贵阳各区市县文旅活动精彩纷呈。云岩区音乐与美食激活旅游热潮,南明区音乐市集与...
原创 朱... 嘿,亲爱的家人们,五一小长假简直成了明星们的“自由日”!熟悉的主持人朱丹也带着宝贝儿子飞奔到海南,开...
别再犹豫了!解锁深圳N种玩法,... 喂喂喂!各位在水泥森林里辛勤耕耘的“打工人”们,五一小长假你们是在家“葛优瘫”刷手机,还是勇敢地加入...
周末母亲节,打算陪老妈过节,做... 这个周末就是母亲节了,这次打算回老家陪母亲过节。民以食为天这句话说的没错,不管日子过得如何,总是少不...
酸奶消费警示提示 为帮助广大消费者 正确选购酸奶 玉溪市市场监督管理局 玉溪市消费者协会 发布如下消费提示 一、选购酸...
原创 比... 导语:比芋头便宜、比红薯营养,夏天要使劲吃!一养颜、二补钾、三润肠 大家好,我是傻姐美食,春夏秋冬,...
当孩子爱上烘焙,成绩不好也不是... 作为家长,孩子成长路上的每一个转折点都牵动着我的心。孩子初中成绩不理想,中考后进入技工类学校,本以为...
28款家常菜谱推荐,营养健康又... 在忙碌的生活中,为家人准备一顿营养健康又美味的家常饭菜,是一份无比温馨的心意。接下来,为您推荐 28...
阜新十大特色名菜,一口咬下去全... 要说辽宁哪个城市最有“隐藏剧情”,阜新必须榜上有名。 这地儿早在辽代就是契丹王朝的“中京”,也就是陪...