`
raymond.chen
  • 浏览: 1441261 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring Cloud Bus实现配置的动态更新

 
阅读更多

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端点即可获得传播的详细信息。

 

 

  • 大小: 32.9 KB
分享到:
评论

相关推荐

    动态配置管理:Spring Cloud Bus实现配置更新广播

    ### 动态配置管理:Spring Cloud Bus实现配置更新广播 #### 一、Spring Cloud Bus简介 在微服务架构中,随着服务数量的增长,管理每个服务的配置变得愈发复杂。为了解决这一问题,Spring Cloud Bus 提供了一种动态...

    spring-cloud-config + spring-cloud-bus-amqp实现分布式集群配置动态更新

    在分布式系统中,管理和维护配置是一项挑战,尤其是在集群环境下,当需要更新配置时,手动更新每个服务实例是不切实际的。Spring Cloud Config 和 Spring Cloud Bus AMQP 的结合使用为解决这一问题提供了一种优雅的...

    Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新(2.自动动态刷新).zip

    Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 spring cloud bus能管理和传播分布式系统间的消息,就像分布式执行器,可用于广播状态更改、时间推送等,也可以当做微服务间的通信通道 spring ...

    springcloud bus 总pom

    springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件 springcloud bus 总父pom 配置文件

    SpringCloud之八 消息总线SpringCloudBus.pdf

    综上所述,Spring Cloud Bus在微服务架构中扮演了不可或缺的角色,它是实现动态配置管理、服务间通信和集群管理的重要工具。理解和掌握Spring Cloud Bus的使用,对于维护一个高效、可靠的微服务系统至关重要。通过...

    spring cloud config、bus源码

    在 Spring Cloud Config/Bus 中,Bus 是一个事件总线,负责传输配置事件。在 Bus 中,事件是通过 AMQP 协议传输的。Bus 事件可以是配置文件的变化、添加或删除等。 五、结论 本文对 Spring Cloud Config/Bus 的...

    SpringCloud整套视频教程

    SpringCloud是Java开发领域中的一款微服务框架,它基于Spring Boot进行构建,为开发者提供了在分布式系统中实现服务治理、配置管理、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话...

    SpringCloud——消息总线(Bus)

    总结来说,Spring Cloud Bus 提供了一种简单有效的方式,使得微服务架构中的服务节点可以相互通信,实现配置的动态更新和事件的广播,极大地提高了系统的灵活性和可扩展性。通过合理利用 Bus,我们可以构建更加健壮...

    springcloud bus rabbitmq 分布式队列

    springcloud bus rabbitmq 分布式队列 http://knight-black-bob.iteye.com/blog/2356839

    SpringCloud项目实战各组件源代码案例

    Spring Cloud Config + Spring Cloud Bus + kafka实现配置中心 SpringCloud微服务远程调用组件Feign的使用 springcloud-circuitbreaker.zip springcloud-config.zipspringcloud-config-oracle.zip springcloud-...

    Spring Cloud实战 _springcloud实战_springcloud_

    Spring Cloud Config是配置管理工具,它支持配置服务的集中化管理和动态刷新,使得开发者可以在不重启应用的情况下更新配置。另外,Spring Cloud Bus可以将配置变更实时推送到所有关联的服务,进一步提高了配置管理...

    08Spring Cloud Bus:消息总线1

    总结来说,Spring Cloud Bus 提供了一种有效的途径来处理分布式系统中的事件传播,特别是在与 Spring Cloud Config 结合时,可以实现配置的动态刷新。通过引入消息代理,如 RabbitMQ,它简化了服务间的通信,提高了...

    尚硅谷周阳老师SpringCloud笔记

    开发者需要学习如何利用SpringCloud Bus实现配置的动态更新。 除此之外,尚硅谷周阳老师的笔记可能还涵盖了SpringCloud Gateway、SpringCloud Stream、SpringCloud Data Flow等更多高级主题。在实际学习过程中,...

    Spring Cloud Bus自动刷新流程图

    微服务架构,是由一个个微小的服务集合而成的一个一套系统,服务多了,维护...再加上通过SpringCloud Bus,让配置文件能够自动刷新(这也应该是微服务应该必须有的一个效果),更加锦上添花了。 ---------------------

    spring-cloud项目_springcloud_springcloud项目_springcloud_spring-clou

    6. **Spring Cloud Bus**: 控制总线,用于广播事件到所有的服务实例,例如配置更新。它通常与 Spring Cloud Config 结合使用,实现在运行时的配置更新。 7. **Ribbon**: Ribbon 是一个客户端负载均衡器,它提供了...

    尚硅谷SpringCloud第2季2020版.mmap

    一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 ...SpringCloud Alibaba Sentinel 实现熔断与限流 SpringCloud Alibaba Seata 处理分布式事务

    SpringCloud项目源码下载.docx

    5. **消息总线**:通过Spring Cloud Bus实现消息的广播机制,可以用于实时更新配置。 6. **API Gateway**:通过Zuul实现服务路由。 7. **分布式跟踪**:通过Sleuth和Zipkin实现请求的追踪和监控。 ### Spring Cloud...

    Spring boot,springCloud精选视频教程

    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配置中心个人demo

    SpringCloud Config 是一个分布式系统配置管理工具,它允许在分布式系统的不同组件之间集中管理和动态更新配置。本项目是一个个人实现的 SpringCloud Config 的演示示例,旨在帮助理解其工作原理和使用方法。以下是...

    Spring Cloud Config(本地配置中心或git配置中心)

    - Spring Cloud Config支持配置的动态刷新,只需在客户端启用`@RefreshScope`注解,当Config Server中的配置发生变化并广播更新时,客户端应用会自动刷新配置。 5. **安全考虑**: - 在生产环境中,配置信息可能...

Global site tag (gtag.js) - Google Analytics