springcloud微服务架构开发实战:分布式消息总线( 三 )

上述例子的源码,可以在 https://github.com/waylau/distributed-systems-technologies-and-cas-es-analysis网址的samples目录下找到 。
Spring Cloud Bus 实现消息总线Spring Cloud Bus通过轻量消息代理连接各个分布的节点,管理和传播所有分布式项目中的消息,本质是利用了消息中间件的广播机制在分布式的系统中传播消息 。
目前Spring Cloud Bus所支持的常用的消息中间件有RabbitMQ和Kafka,使用时,只须添加spring-cloud-starter-bus-amqp或spring-cloud-starter-bus-kafka依赖即可 。同时,需要确保相关的消息中间件连接配置正确 。
下面是使用RabbitMQ作为Spring Cloud Bus 的application.yml配置情况 。
spring:rabbitmg:host: mybroker .comport:5672username:userpassword:secret其中,spring.rabbitmq.host配置项用于指定RabbitMQ的主机位置 。
Spring Cloud Bus支持消息发送到所有已监听的节点,或者某个特定服务的所有节点 。同时,Spring Cloud Bus提供了一些HTTP接口/bus/*,用于触发Spring Cloud Bus内部的事件 。
目前,Spring Cloud Bus主要有以下两个接口实现 。

  • ./bus/env:发送键值对去更新每个节点的Spring Environment 。
  • ./bus/refresh:重新加载每一个应用的配置信息,类似于/refresh 。
所以,Spring Cloud Bus结合Spring Cloud Config 的使用,可以实现配置文件的自动更新 。

【springcloud微服务架构开发实战:分布式消息总线】


推荐阅读