Spring Cloud Bus通过轻量消息代理连接各个分布的节点。它可用在广播状态的变化或者其他的消息指令。Spring Cloud Bus的一个核心思想是通过分布式的启动器对Spring Boot 应用进行扩展,也可以用来建立一个多个应用之间的通信频道。
Spring Cloud Bus整合java的事件处理机制和消息中间件消息的发送和接收,主要由发送端、接收端和事件组成。针对不同的业务需求,可以设置不同的事件,发送端发送事件,接收端接收相应的事件,并进行相应的处理。
本文章介绍使用Spring Cloud Bus与Spring Cloud Config的整合,并以RabbitMQ作为消息代理,实现应用配置的动态更新。
动态更新配置的处理过程描述如下:
1、将最新的配置文件push到git服务器
2、利用git仓库的Webhook机制监听push事件,事件捕获后,执行配置好的Payload URL地址(此处为配置中心的/actuator/bus-refresh端点)。通过git仓库的 Settings > Webhooks > Add webhook 可以创建Webhook。
3、配置中心从git获取最新的配置信息,并发送消息到RabbitMQ
4、微服务节点订阅和接收RabbitMQ消息,接收到消息后,从配置中心获取最新的配置信息
RabbitMQ的安装和配置请自行准备,此处不再介绍。
创建配置中心工程config-center:
在《Spring Cloud Config分布式配置中心》这篇文章的基础上,完善工程的配置。
在pom.xml文件添加依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
application.properties文件添加配置:
spring.rabbitmq.host=192.168.134.134 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest management.endpoints.web.exposure.include=* #management.endpoints.web.exposure.include=health,info,refresh,bus-refresh
创建消费配置的微服务工程config-consumer工程:
在《使用配置中心的配置信息》这篇文章的基础上,完善工程的配置。
在pom.xml文件添加依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency>
application.properties文件添加配置:
spring.rabbitmq.host=192.168.134.134 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest management.endpoints.web.exposure.include=* #management.endpoints.web.exposure.include=health,info,refresh,bus-refresh
刷新配置
全量刷新:
以POST方式请求配置中心的 http://localhost:4001/actuator/bus-refresh 端点
刷新某个微服务实例的配置:
http://localhost:4001/actuator/bus-refresh/小写的服务应用名:端口号
http://localhost:4001/actuator/bus-refresh/config-consumer2:4322
刷新某个微服务所有实例的配置
http://localhost:4001/actuator/bus-refresh/小写的服务应用名:**
http://localhost:4001/actuator/bus-refresh/config-consumer2:**
创建git仓库的Webhook时,Payload URL填写配置中心的 http://localhost:4001/actuator/bus-refresh 端点地址即可。
跟踪总线事件
如果想知道 Spring Cloud Bus 事件传播的细节,可以跟踪总线事件(RemoteApplicationEvent 的子类都是总线事件)。
在/actuator/bus-refresh端点被请求后,访问/actuator/httptrace端点即可获得传播的详细信息。
相关推荐
### 动态配置管理:Spring Cloud Bus实现配置更新广播 #### 一、Spring Cloud Bus简介 在微服务架构中,随着服务数量的增长,管理每个服务的配置变得愈发复杂。为了解决这一问题,Spring Cloud Bus 提供了一种动态...
在分布式系统中,管理和维护配置是一项挑战,尤其是在集群环境下,当需要更新配置时,手动更新每个服务实例是不切实际的。Spring Cloud Config 和 Spring Cloud Bus AMQP 的结合使用为解决这一问题提供了一种优雅的...
Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 spring cloud bus能管理和传播分布式系统间的消息,就像分布式执行器,可用于广播状态更改、时间推送等,也可以当做微服务间的通信通道 spring ...
springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件
综上所述,Spring Cloud Bus在微服务架构中扮演了不可或缺的角色,它是实现动态配置管理、服务间通信和集群管理的重要工具。理解和掌握Spring Cloud Bus的使用,对于维护一个高效、可靠的微服务系统至关重要。通过...
在 Spring Cloud Config/Bus 中,Bus 是一个事件总线,负责传输配置事件。在 Bus 中,事件是通过 AMQP 协议传输的。Bus 事件可以是配置文件的变化、添加或删除等。 五、结论 本文对 Spring Cloud Config/Bus 的...
SpringCloud是Java开发领域中的一款微服务框架,它基于Spring Boot进行构建,为开发者提供了在分布式系统中实现服务治理、配置管理、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话...
总结来说,Spring Cloud Bus 提供了一种简单有效的方式,使得微服务架构中的服务节点可以相互通信,实现配置的动态更新和事件的广播,极大地提高了系统的灵活性和可扩展性。通过合理利用 Bus,我们可以构建更加健壮...
springcloud bus rabbitmq 分布式队列 http://knight-black-bob.iteye.com/blog/2356839
Spring Cloud Config + Spring Cloud Bus + kafka实现配置中心 SpringCloud微服务远程调用组件Feign的使用 springcloud-circuitbreaker.zip springcloud-config.zipspringcloud-config-oracle.zip springcloud-...
Spring Cloud Config是配置管理工具,它支持配置服务的集中化管理和动态刷新,使得开发者可以在不重启应用的情况下更新配置。另外,Spring Cloud Bus可以将配置变更实时推送到所有关联的服务,进一步提高了配置管理...
总结来说,Spring Cloud Bus 提供了一种有效的途径来处理分布式系统中的事件传播,特别是在与 Spring Cloud Config 结合时,可以实现配置的动态刷新。通过引入消息代理,如 RabbitMQ,它简化了服务间的通信,提高了...
开发者需要学习如何利用SpringCloud Bus实现配置的动态更新。 除此之外,尚硅谷周阳老师的笔记可能还涵盖了SpringCloud Gateway、SpringCloud Stream、SpringCloud Data Flow等更多高级主题。在实际学习过程中,...
微服务架构,是由一个个微小的服务集合而成的一个一套系统,服务多了,维护...再加上通过SpringCloud Bus,让配置文件能够自动刷新(这也应该是微服务应该必须有的一个效果),更加锦上添花了。 ---------------------
6. **Spring Cloud Bus**: 控制总线,用于广播事件到所有的服务实例,例如配置更新。它通常与 Spring Cloud Config 结合使用,实现在运行时的配置更新。 7. **Ribbon**: Ribbon 是一个客户端负载均衡器,它提供了...
一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 ...SpringCloud Alibaba Sentinel 实现熔断与限流 SpringCloud Alibaba Seata 处理分布式事务
5. **消息总线**:通过Spring Cloud Bus实现消息的广播机制,可以用于实时更新配置。 6. **API Gateway**:通过Zuul实现服务路由。 7. **分布式跟踪**:通过Sleuth和Zipkin实现请求的追踪和监控。 ### Spring Cloud...
24.Spring Cloud Config服务端配置细节(二)之加密解密 25.Spring Cloud Config客户端配置细节 26.Spring Cloud Bus之RabbitMQ初窥 27.Spring Cloud Bus整合RabbitMQ 28.Spring Cloud Bus整合Kafka 29.Spring ...
SpringCloud Config 是一个分布式系统配置管理工具,它允许在分布式系统的不同组件之间集中管理和动态更新配置。本项目是一个个人实现的 SpringCloud Config 的演示示例,旨在帮助理解其工作原理和使用方法。以下是...
- Spring Cloud Config支持配置的动态刷新,只需在客户端启用`@RefreshScope`注解,当Config Server中的配置发生变化并广播更新时,客户端应用会自动刷新配置。 5. **安全考虑**: - 在生产环境中,配置信息可能...