好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

背景

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

实现原理

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

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

查看更多关于Java Spring Cloud Bus 实现配置实时更新详解的详细内容...

  阅读:16次