服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java Spring Cloud Bus 实现配置实时更新详解

Java Spring Cloud Bus 实现配置实时更新详解

2022-01-03 16:56lbl2018 Java教程

这篇文章主要介绍了SpringCloud Bus如何实现配置刷新,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

背景

使用Spring Cloud Config Server,启动Service时会从配置中心取配置文件,并注入到应用中,如果在Service运行过程中想更新配置,需要使用Spring Cloud Bus配合实现实时更新。

实现原理

需要借助RabbitMQ等消息中间件来实现服务间的通讯

Java Spring Cloud Bus 实现配置实时更新详解

ConfigServer改造

目标:使ConfigServer暴露bus-refresh接口,通过bus通知服务更新配置

1. pom.xml增加以下依赖

?
1
2
3
4
5
6
7
8
<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. 配置文件中配置暴露接口

?
1
management.endpoints.web.exposure.include=bus-refresh

Service改造

1. pom.xml增加以下依赖

?
1
2
3
4
5
6
7
8
<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声明配置刷新时需要重新注入

?
1
2
3
@RefreshScope
@Controller
public class LblController {

测试

1. 修改git仓库上的配置文件

Service配置没有更新

2. 调用http://localhost:8081/actuator/bus-refresh(POST)

Service配置更新

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/lblblblblzdx/article/details/81516665

延伸 · 阅读

精彩推荐