Spring Cloud 学习笔记 ——Spring Cloud Bus 逐个刷新Spring Cloud Config

逐个刷新

Spring Cloud Bus 及 自动更新 config client 配置文件功能中,访问 config-server 的 bus-refresh 接口就能刷新各个 config-client 配置文件,看起来没有什么问题,也很方便,但是当我有一万个服务,而只要刷新其中的一些服务的配置文件时,这样配置就有点“费功夫”了,当然通过添加 actuator 依赖,使用 @RefreshScope 注解的内容没有这个问题。但是这样要在项目中用到配置文件的地方都加上 @RefreshScope 注解。如果只想刷新单个微服务,怎么办呢,可以通过以下配置解决问题。

  • 首先,给每个 config-client 配置一个 eureka 的 instance-id,用 名字:端口来配置
eureka.instance.instance-id=${spring.application.name}:${server.port}

把 config-client 打包,打包完成后利用不同端口,模拟多个微服务,然后像下面这样启动多个 config-client。

config-client\target>java -jar config-client-0.0.1-SNAPSHOT.jar
config-client\target>java -jar config-client-0.0.1-SNAPSHOT.jar --server.port=8083

(1)直接访问 bus-refresh 的情况
访问两个服务的 hello 接口:
在这里插入图片描述
在这里插入图片描述
修改 client-test.properties,并且使用 bus-refresh 更新
在这里插入图片描述
提交到 Github
在这里插入图片描述
bus-refresh 刷新
在这里插入图片描述
再次访问服务:
在这里插入图片描述
在这里插入图片描述
可以看到 8082 和 8083 端口的服务都刷新了。这是 config client 集体刷新
(2)bus-refresh 单独刷新一个服务:
再次修改 client1-test.properties
在这里插入图片描述
提交到 Github
在这里插入图片描述
bus-refresh/instance-id 刷新
在这里插入图片描述
访问 8082 和 8083 的 hello 接口
在这里插入图片描述
在这里插入图片描述
可以看到 8083 端口的服务配置刷新了,而 8082 端口的服务没有刷新,就是在原来的http://localhost:8081/actuator/bus-refresh基础上,拼接上参数 /client1:8083访问
http://localhost:8081/actuator/bus-refresh/client1:8083就可以刷新指定的服务,与全量刷新比较,首先要设置 Eureka 的 instance-id,然后访问 bus-refresh 拼接上 instance-id 即可。这就是 Spring Cloud Bus 逐个刷新 Spring Cloud Config 服务的功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值