第九章 消息总线: Spring Cloud Bus

  在微服务架构的系统中, 我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来, 由于该主题中产生的消息会被所有实例监听和消费, 所以我们称它为消息总线。 在总线上的各个实例都可以方便地广播一些需要让其他连
接在该主题上的实例都知道的消息, 例如配置信息的变更或者其他一些管理操作等
  由于消息总线在微服务架构系统中被广泛使用, 所以它同配置中心一样, 几乎是微服务架构中的必备组件。 Spring Cloud 作为微服务架构综合性的解决方案,对此自然也有自己的实现, 这就是本章我们将要具体介绍的 Spring Cloud Bus。 通过使用 Spring Cloud Bus,
可以非常容易地搭建起消息总线, 同时实现了一些消息总线中的常用功能, 比如, 配合Spring Cloud Config 实现微服务应用配置信息的动态更新等

消息代理

  消息代理 (Message Broker) 是一种消息验证、 传输、 路由的架构模式。 它在应用程序之间起到通信调度并最小化应用之间的依赖的作用, 使得应用程序可以高效地解耦通信过程。 消息代理是一个中间件产品, 它的核心是一个消息的路由程序, 用来实现接收和分发
消息, 并根据设定好的消息处理流来转发给正确的应用。 它包括独立的通信和消息传递协议, 能够实现组织内部和组织间的网络通信。 设计代理的目的就是为了能够从应用程序中传入消息, 并执行一些特别的操作, 下面这些是在企业应用中, 我们经常需要使用消息代
理的场景:

  • 将消息路由到一个或多个目的地
  • 消息转化为其他的表现方式
  • 执行消息的聚集、 消息的分解, 并将结果发送到它们的目的地, 然后重新组合响应返回给消息用户
  • 调用Web服务来检索数据
  • 响应事件或错误
  • 使用发布-订阅模式来提供内容或基于主题的消息路由

目前已经有非常多的开源产品可以供大家使用, 比如:ActiveMQ、 Kafka、 RabbitMQ、RocketMQ、···

当前版本的Spring Cloud Bus仅支待两款中间件产品: RabbitMQ和Kafka。 在下面的章节中, 我们将分别介绍如何使用这两款消息中间件与Spring Cloud Bus配合实现消息总线

原文地址:https://www.cnblogs.com/hzzjj/p/10263880.html

时间: 2024-07-30 02:30:03

第九章 消息总线: Spring Cloud Bus的相关文章

史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f8-bus/或者http://blog.csdn.net/forezp/article/details/81041062 Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改. 本文还是基于

SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)

一.安装rabbitmq 二.pom父文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus

在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很多个客户端都需要刷新改配置,通过这种方式去刷新也是一种非常痛苦的事情.那有没有什么办法让系统自动完成呢? 之前我们提到用githook或者jenkins等外部工具来触发.现在说另外一种思路, 如果refresh命令可以发送给config server,然后config server自动通知所有con

第八篇:消息总线(Spring Cloud Bus)

前面几篇文章我们聊了Spring Cloud Config配置中心,当我们在更新Git上面的配置以后,如果想要获取到最新的配置,需要手动刷新或者利用webhook的机制每次提交代码发送请求来刷新客户端,客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了.使用Spring Cloud Bus可以完美解决这一问题. 1.消息总线 Spring cloud bus通过轻量消息代理连接各个分布的节点.这会用在广播状态的变化(例如配置变化)或者其他的消息指令.Spring bus的一个核

通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)

通过总线机制实现自动刷新客户端配置 方案示意图 利用Git服务的webhook通知功能,在每次更新配置之后,Git服务器会用POST方式调用配置中心的/actuator/bus-refresh接口,配置中心的总线服务会将此事件广播给加入总线的所有客户端,客户端收到事件后会从新读取配置中心的内容. 增加POM依赖 配置中心的服务端(spring-cloud-config-server)和客户端(spring-cloud-config-client)都加入Spring Cloud Bus引用包: <

spring cloud 使用spring cloud bus自动刷新配置

Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ.Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化或者其他的管理指令.使用Spring Cloud Bus后的架构如图9-2所示. 图9-2 使用Spring Cloud Bus的架构图 由图可知,微服务A的所有实例通过消息总线连接到了一起,每个实例都会订阅配置更新事件.当其中一个微服务节点的/bus/refresh端点被请求时,该实例就会向消息总

【Spring Cloud】Spring Cloud之整合Spring Cloud Bus以及最佳实践

一.整合步骤 1)加入Maven坐标 <!-- actuator监控模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.0.3.RELEASE</version> </dependency> &l

(十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置

我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务. 当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多.配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效. 如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响. 如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯

(十六)JAVA springcloud ssm b2b2c多用户商城系统-使用spring cloud Bus刷新配置

我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务. 当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多.配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效. 如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响. 如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯