分布式配置自动刷新配置功能,springCloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新.
Bus支持两种消息代理: RabbitMQ 和Kafka
如果不熟悉springcloud config 请关注我之前的文章SpringCloud 实战
理念
在使用动态配置文件时,服务端更换一次配置,需要手动去向客户端发送刷新请求,但如果多台服务器甚至上百台,不可能去向所有客户端服务发送请求,大大增加运维的任务
解决
引入springcloud bus消息总栈,配合rabbitmq实现一次更新,同步所有客户端
- 引入pom文件
<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>
- 配置yml
rabbitmq:
host: 127.0.0.1
port: 5672
username: admin
password: admin
##暴露bus刷新配置端点
management:
endpoints:
web:
exposure:
include: 'bus-refresh'
同理客户端也要配置好mq通信
- 发送post请求
127.0.0.1:3344/actuator/bus-refresh
如果需要手动定点刷新,带上服务名及端口号,例:
127.0.0.1:3344/actuator/bus-refresh/config-client:3355
网友评论