`

spring cloud config 结合 spring cloud bus实现配置自定的刷新

阅读更多

    在线上环境中,有时候我们希望系统中的某些配置参数在修改后,可以立即生效而不用重新启动服务。由上一节我们知道,我们可以把配置文件统一放到配置服务中进行管理,这一节我们在配置中心中整合spring cloud bus并结合gitwebhook实现配置的自动刷新。

    整合spring cloud bus后我们可以获取到一些新的端点:

    POST  /bus/refresh: 用于刷新配置

    POST  /bus/refresh?destination=spring.application.name:port 刷新具体的某个微服务,port和前面的name可以使用通配符 *

 

需求

    实现系统中的配置的自动刷新

 

实现步骤(在上一节代码的基础上)

     1、安装 erlang 和 rabbitmq, 需要注意 rabbitmq不同的版本需要不同的erlang的版本,参考链接 https://www.rabbitmq.com/which-erlang.html

     2、config server 和 config client 端同时引入以下依赖

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

    3、需要动态刷新配置的地方加上 @RefreshScope 注解

         此处是从配置中心获取  msg 这个字段的值,记住这个controller 的访问路径,下方演示需要用到

@RestController
@RefreshScope
public class PrintMsgController {
	@Value("${msg}")
	private String msg;
	/**
	 * 打印msg消息
	 *
	 * @return
	 */
	@GetMapping("print/msg")
	public String print() {
		return msg;
	}
}

    4、找到 git 的远程仓库,配置 webhook,这里以 github为例

    5、配置中心和配置客户端的代码 配置文件和上节差不多,唯一不同的是加入rabittmq 的配置

spring: 
  rabbitmq: 
    host: localhost
    port: 5672
    username: guest
    password: guest

 

运行结果


 

    解释:

         1、演示 config server 的代码

         2、演示 config client 的代码

         3、服务注册中心上各个服务注册的情况

         4、演示 webhook的配置(webhook配置的地址需要是外网可以访问的,我上方的例子是使用了一个内网穿透工具)

         5、更新 git 仓库上的配置,看各个客户端是否都更新

         6、取消webhook,然后开效果

         7、在 chrome 浏览器中演示如何只更新某个具体的微服务或使用通配符更新

 

完整代码

配置动态刷新完整代码:https://gitee.com/huan1993/spring-cloud-parent/tree/master/config/config-bus-webhook

 

  • 大小: 81.4 KB
  • 大小: 8.6 MB
  • 大小: 7 MB
分享到:
评论

相关推荐

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

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

    spring cloud config、bus源码

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

    spring cloud config

    spring cloud config&bus;整合例子包能运行,包含rabbitmq

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

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

    Spring Cloud.docx

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

    尚硅谷SpringCloud第2季2020版.mmap

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

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

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

    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 ...

    spring cloud config 和 bus 源码解读

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

    利用Spring Cloud Config结合Bus实现分布式配置中心的步骤

    主要介绍了利用Spring Cloud Config结合Bus实现分布式配置中心的相关资料,文中通过示例代码将实现的步骤一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧

    springCloud项目练习

    第六课: 分布式配置中心(Spring Cloud Config) 第七课: 高可用的分布式配置中心(Spring Cloud Config) 第八课: 消息总线(Spring Cloud Bus) 第九课: 服务链路追踪(Spring Cloud Sleuth) 第十课: 高可用的服务...

    springcloud微服务框架+服务模版

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

    spring-cloud使用的各种示例

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

    spring cloud 配置中心自动刷新

    Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个...

    spring-cloud-examples

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

    SpringCloud教程

    史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config) 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus) 史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪...

    springcloud技术点

    Zuul、Ribbon、Feign、Turbine、Hystrix、Oauthor2、Sleuth、API Gateway、Spring Cloud、Config Eureka、SSO、Spring Cloud、 BUS、Turbine、Zipkin、Cache、Spring Cloud Admin、API Gateway、ELK Spring Cloud ...

    SpringCloud面试题.pdf

    Spring Cloud作为一套微服务开发的工具集,涵盖了从服务发现、配置管理到断路器、网关、分布式会话等多个微服务相关的组件。以下是60个与Spring Cloud相关的面试问题,旨在帮助你全面了解和准备Spring Cloud相关的...

    SpringCloud H版+SpringCloud alibaba

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

    SpringCloud思维导图

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

Global site tag (gtag.js) - Google Analytics