SpringCloud学习之六:使用Spring Cloud Bus自动刷新配置

时间:2020-07-03 19:07:57   收藏:0   阅读:107

使用Spring Cloud Bus自动刷新配置

1. 简介

上一章已经实现了使用服务配置中心集中管理配置文件,并可/actuator/refresh手动刷新配置而不需重启。但如果所有微服务节点的配置都需要手动刷新,工作量也很大。所以本文将使用Spring Cloud Bus实现配置的自动刷新。

Spring Cloud Bus使用轻量级的消息代理(RabbitMQ、Kafka等)连接分布式系统节点,这样当其中一个节点的状态更改时可以自动广播到其他节点。

graph LR 用户--/actuator/bus-refresh-->A[Config Server] A --从Git拉取配置--> B[Git Repo] C[微服务A] --获取配置--> A D[微服务B] --获取配置--> A E[微服务C] --获取配置--> A F[Spring Cloud Bus] -.接收消息.-> C F -.接收消息.-> D F -.接收消息.-> E A -.发送消息.-> F

2. Spring Cloud Bus

2.1 实现自动刷新

2.2 问题

若使用/actuator/bus-refresh端点刷新后,没有通知其他节点;导致只有本节点配置更新,其他节点配置无更新。则可能跟Turbine聚合监控问题一样,都是因为交换器的问题。

3. 局部刷新

在某些场景下(如灰度发布),若指向刷新部分微服务的配置,可通过/actuator/bus-refresh/{destination}中的destination定位要刷新的应用范围

destination值为{spring.application.name}:{server.port}

4. Spring Cloud Config与Eureka配合使用

前文中是在客户端中指定Config Server地址,这种方式无法利用服务发现组件的优势

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!