Spring Cloud Bus消息总线

系统管理员 2022-05-24 10:40 276阅读 0赞

前面https://blog.csdn.net/didi7696/article/details/80337946讲到Spring Cloud Config把配置文件放到gitHub上来读取。通过/refresh接口来更新读取修改的文件,从而可以读取新的值。但是,若所有触发操作均需要我们手工去维护Web Hook中的应用位置的话,这随着系统的不断扩张,会变的越来越难以维护,而消息代理中间件是解决该问题最为合适的方案。是否还记得我们在介绍消息代理中的特点时有提到过这样一个功能:消息代理中间件可以将消息路由到一个或多个目的地。利用这个功能,我们就能完美的解决该问题,下面我们来说说Spring Cloud Bus中的具体实现方案。现在通过Spring Cloud Bus在多个客户端的情况下只要通过/bus/refresh(post请求)这个接口刷新一次,所有的客户端读取的将是最新的配置文件的内容。

在前面项目的基础上增加如下的内容

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-bus-amqp</artifactId>
  4. </dependency>

配置文件中配置RabbitMQ的信息

  1. spring.rabbitmq.host=localhost
  2. spring.rabbitmq.port=5672
  3. spring.rabbitmq.username=guest
  4. spring.rabbitmq.password=guest

先启动配置文件服务端在分别启动多个配置文件客户端(端口号不同)
通过post请求访问其中一个客户端的/bus/refresh接口,到这里,我们已经能够通过Spring Cloud Bus来实时更新总线上的属性配置了。所有的客户端都可以获得最新的profile的值。

工作原理:
这里写图片描述

图中的Gi仓库,config Server 以及ServerA都被引入在Rabbit MQ的消息总线上。当其中一个ServerA的/bus/refreshi接口被访问的时候,被访问的ServerA会向消息总线方式发送消息并获取最新的配置,消息总线的消息事件会被其他的ServerA获取并从Git仓库获取最新的消息

参考:
http://blog.didispace.com/springcloud7/

发表评论

表情:
评论列表 (有 0 条评论,276人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring Cloud Bus(消息总线)(1)

    消息代理 消息代理是一种消息验证、传输、路由的架构模式。它在应用程序之间起到通信调度并最小化应用之间的依赖作用,使得应用程序可以高效地解耦通信过程。消息代理是一个中间件产