在上一小节中我们将微服务的application.yml配置文件放在了git仓库,当我们需要修改配置信息的时候,已经部署好的微服务并不知道我们修改了配置。想要在修改配置文件修改后,又不用重启相应的微服务,这时就需要本节的操作了。
修改上节的config模块,添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
添加配置
server:
port: 12000
spring:
application:
name: tensquare-config
cloud:
config:
server:
git:
uri: https://gitee.com/xu_yu/springcloud_config_test.git
rabbitmq:
host: 192.168.248.135
management: #暴露触发消息总线的地址
endpoints:
web:
exposure:
include: bus‐refresh
在article微服务中添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在git仓库中修改article的配置文件,添加rabbitmq的配置
下面测试:
原来配置文件中数据库地址为:
url: jdbc:mysql://192.168.248.135:33306/tensquare_article?characterEncoding=UTF8
测试数据:
修改配置文件中的数据库地址并保存
发送:http://127.0.0.1:12000/actuator/bus-refresh
,获取消息队列中更新配置文件的消息
再次获取数据:
当配置文件中有自定义的配置信息时,修改后刷新依然没有改变,解决方法是在对应的controller上应加注解:@RefreshScope