`
raymond.chen
  • 浏览: 1418101 次
  • 性别: 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 Config使用可以实现配置的动态刷新(2.自动动态刷新).zip

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

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

    spring-cloud-config + spring-cloud-bus-amqp实现分布式集群配置动态更新,可更新实例对象,包含源码包+Rabbitmq安装包和安装说明

    springcloud bus 总pom

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

    springcloud bus rabbitmq 分布式队列

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

    spring cloud config、bus源码

    spring cloud config/bus源码解读,,包含server端,client端,bus的运行原理

    SpringCloud之八 消息总线SpringCloudBus.pdf

    SpringCloud之八 消息总线SpringCloudBus.pdf,微服务中消息总线的使用处理

    Spring Cloud Bus自动刷新流程图

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

    尚硅谷SpringCloud第2季2020版.mmap

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

    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——消息总线(Bus)

    SpringCloud——消息总线(Bus)之Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。

    Spring Cloud.docx

    spring-cloud-eureka Spring Cloud(一)服务的注册与发现(Eureka) spring-cloud-consul ...Spring Cloud(二) ...Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)

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

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

    springCloud项目练习

    第八课: 消息总线(Spring Cloud Bus) 第九课: 服务链路追踪(Spring Cloud Sleuth) 第十课: 高可用的服务注册中心 第十一课:docker部署spring cloud项目 第十二课: 断路器监控(Hystrix Dashboard) 第十三课: ...

    spring cloud demo

    spring cloud demo,消费者,生产者,注册中心,可以借鉴一下

    08Spring Cloud Bus:消息总线1

    08Spring Cloud Bus:消息总线1

    spring-cloud使用的各种示例

    - [springcloud(九):配置中心和消息总线(配置中心终结版)](http://www.ityouknow.com/springcloud/2017/05/26/springcloud-config-eureka-bus.html) - [springcloud(十):服务网关zuul]...

    springcloud微服务框架+服务模版

    spring-cloud-config-eureka-bus:配置中心和消息总线示例(配置中心终结版) gateway-service-zuul:Spring Cloud Zuul使用初级篇 网关 均衡负载 spring-cloud-zuul:Spring Cloud Zuul使用高级篇 Filter 鉴权 熔断...

    SpringCloud思维导图

    14.SpringCloud Bus
消息总线 15.SpringCloud Stream
消息驱动 16.SpringCloud Sleuth
分布式请求链路跟踪 17. Apollo配置中心 18.SpringCloud Alibaba
入门简介 19.SpringCloud Alibaba
Nacos服务注册和配置...

    SpringCloud H版+SpringCloud alibaba

    重点讲解了SpringCloud各种组件停止更新进入维护阶段后,后续技术组件的升级和替换策略及方案选型,既有传统Eureka、Ribbon、OpenFeign、Hystrix、Config等技术的升级讲解,又有Consul、Gateway、Bus、Stream、Sleuth...

    59道SpringCloud面试题详解含答案(值得珍藏)

    Spring Cloud是基于Spring Boot提供的一套微服务解决方案,包括服务...Spring Cloud还提供了一系列的子项目和工具,如Spring Cloud Bus(事件/消息总线)、Spring Cloud Security(基于springsecurity的安全工具包)

Global site tag (gtag.js) - Google Analytics