Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

如何修改配置文件在不重启项目的情况下自动更新项目配置
一。添加依赖
在Config 服务端 和 客户端的pom中加入依赖

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-bus-amqp</artifactId>
	</dependency>

即在config 和order俩个服务中加入依赖
二。修改配置
config 的 application.yml中如下
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

在order加入如下配置
由于配置文件已经放到了git上,所以直接在git上修改
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus
用来测试配置实时刷新用的配置,无任何实际意义
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

然后启动项目可以看到
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus
(spring cloud若不配置rabbit mq的登录名什么的,会使用默认参数 guest/guest)

这时我们访问对外暴露的接口http://localhost:8088/actuator/bus-refresh
通过发送post请求
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

查看order的日志
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus
会从config配置中心获取并读取配置。
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus
可以读取到参数。

修改git上的配置
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

再次刷新发送post请求
Spring Cloud从0开始(七)消息总线实现动态配置更新:Spring Clound Bus

参数实时更新了,并没有重启任何服务

可以通过git的webhook。当配置文件有任何变得时,自动发送post请求到我们配置中心。