分布式配置自動刷新配置功能,springCloud Bus配合Spring Cloud Config使用可以實(shí)現(xiàn)配置的動態(tài)刷新.
Bus支持兩種消息代理: RabbitMQ 和Kafka
如果不熟悉springcloud config 請關(guān)注我之前的文章SpringCloud 實(shí)戰(zhàn)
理念
在使用動態(tài)配置文件時,服務(wù)端更換一次配置,需要手動去向客戶端發(fā)送刷新請求,但如果多臺服務(wù)器甚至上百臺,不可能去向所有客戶端服務(wù)發(fā)送請求,大大增加運(yùn)維的任務(wù)
解決
引入springcloud bus消息總棧,配合rabbitmq實(shí)現(xiàn)一次更新,同步所有客戶端
- 引入pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<!-- 圖形化監(jiān)控是必須要有的 -->
<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刷新配置端點(diǎn)
management:
endpoints:
web:
exposure:
include: 'bus-refresh'
同理客戶端也要配置好mq通信
- 發(fā)送post請求
127.0.0.1:3344/actuator/bus-refresh
如果需要手動定點(diǎn)刷新,帶上服務(wù)名及端口號,例:
127.0.0.1:3344/actuator/bus-refresh/config-client:3355