美文网首页
Spring Cloud Bus 原理简介和实现

Spring Cloud Bus 原理简介和实现

作者: 平凡人笔记 | 来源:发表于2020-04-26 17:54 被阅读0次

一、原理简介

Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令

通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。

使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring Cloud Bus 又被称为消息总线。

Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新。

目前 Spring Cloud Bus 支持两种消息代理:RabbitMQ 和 Kafka。

下面以 RabbitMQ 为例来演示下使用Spring Cloud Bus 动态刷新配置的功能。

二、测试的配置文件准备

三、启动rabbitmq (上篇文章已介绍)

四、启动注册中心

五、启动配置中心

六、启动配置客户端1

七、启动配置客户端2

八、动态刷新配置演示

我们先启动相关服务,启动eureka-server,以application-amqp.yml为配置启动config-server,以bootstrap-amqp1.yml为配置启动config-client,以bootstrap-amqp2.yml为配置再启动一个config-client,启动后注册中心显示如下:

启动所有服务后,我们登录RabbitMQ的控制台可以发现Spring Cloud Bus 创建了一个叫springCloudBus的交换机及三个以 springCloudBus.anonymous开头的队列:

查询目前配置

修改配置

刷新配置

再次查询

如果只需要刷新指定实例的配置可以使用以下格式进行刷新:http://localhost:8904/actuator/bus-refresh/{destination} ,我们这里以刷新运行在9004端口上的config-client为例http://localhost:8904/actuator/bus-refresh/config-client:9004。

自动刷新

九、项目源码地址

https://gitee.com/pingfanrenbiji/spring-cloud-repo.git

https://gitee.com/pingfanrenbiji/springcloud-learning.git

十、参考文章

https://juejin.im/post/5da70d1351882509615bea34

相关文章

网友评论

      本文标题:Spring Cloud Bus 原理简介和实现

      本文链接:https://www.haomeiwen.com/subject/amujwhtx.html