一、先上盗图
这张图是让微服务clientA 充当了消息的发布者,据说是违背了单例职责原则。

下面这张图是改进版,由配置中心微服务来担当消息的发布者

二、工作流程
以上两张图对于理解自动刷新的工作流程很关键
1.在gitee配置文件仓库修改对应微服务(e.g. ServiceA)的配置文件并提交
2.手动触发自动刷新,使用Postman发送post请求到配置中心微服务例如http://localhost:9000/actuator/busrefresh
3.添加了sprint-boot-starter-actuator依赖的配置中心微服务在接收到Postman发送的请求后,将消息发送给spring cloud bus
4.spring cloud bus 将消息传递给消息代理 rabbitmq-server,加入消息队列
5. rabbitmq的消费端即微服务(ServiceA)监听到消息后消费了消息,主动发送了刷新配置文件的请求到配置中心微服务
6. 该配置文件对应的微服务(ServiceA)实现了自动刷新配置而无须重启微服务
本文介绍了一种通过配置中心微服务实现多个客户端微服务配置文件自动刷新的机制。具体步骤包括:修改配置文件并提交;手动触发刷新;配置中心微服务通过Spring Cloud Bus将消息传递给RabbitMQ;微服务监听消息并主动请求刷新。
167万+

被折叠的 条评论
为什么被折叠?



