SpringCloud H版 Config+Bus 实现全局配制刷新

Posted 小毕超

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud H版 Config+Bus 实现全局配制刷新相关的知识,希望对你有一定的参考价值。

一、Spring cloud Bus

在上篇文章中我们介绍了Spring cloud config的使用,但是应该可以发现一个问题,就是我们在修改完 git 中的配制后,让每个服务生效,需要按个调用刷新接口,如果服务非常多的时候,岂不是非常难受,因此本篇就来介绍下Spring cloud Bus + Spring cloud config实现自动刷新全部服务的功能。

上篇文章地址:https://blog.csdn.net/qq_43692950/article/details/122024549

Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,
它整合了Java的事件处理机制和消息中间件的功能。
Spring Clud Bus目前支持RabbitMQ和Kafka。

二、Spring cloud 引入 Bus

首先启动一台RabbitMQ

在上篇文章的基础上,我们对项目进行修改:

1. 修改 config server端

在pom中添加依赖:

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

配制文件修改:

spring:
  application:
    name:  config-center #注册进Eureka服务器的微服务名
  cloud:
    config:
      server:
        git:
#          uri: git@gitee.com:app94/cloud-config.git #GitHub上面的git仓库名字
          uri: https://gitee.com/app94/cloud-config.git #GitHub上面的git仓库名字
          username: $(username)
          password: $password
          ####搜索目录
          search-paths:
            - application
      ####读取分支
      label: master

  rabbitmq:
    host: 192.168.40.1
    port: 5672
    username: guest
    password: guest
    
##rabbitmq相关配置,暴露bus刷新配置的端点
management:
  endpoints: #暴露bus刷新配置的端点
    web:
      exposure:
        include: 'bus-refresh'

主要加入了rabbitmq配制和 暴露bus刷新配置的端点。

2. 修改 config client端

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

配制文件修改:

spring:
  application:
    name: config-client
  cloud:
    #Config客户端配置
    config:
      label: master #分支名称
      name: application #配置文件名称
      profile: consumer #读取后缀名称   上述3个综合:master分支上config-dev.yml的配置文件被读取http://config-3344.com:3344/master/config-dev.yml
#      uri: http://localhost:8070 #配置中心地址k
      discovery:
        enabled: true
        service-id: CONFIG-CENTER
  rabbitmq:
    host: 192.168.40.1
    port: 5672
    username: guest
    password: guest

management:
  endpoint:
    shutdown:
      enabled: false
  endpoints:
    web:
      exposure:
        include: "*"

主要加入了rabbitmq配制和 暴露端点。

三、测试

先查看下当前的配制,调用测试接口,查看打印日志:

修改 Git 中的配制内容:

使用PostMan调用接口:http://localhost:8070/actuator/bus-refresh 注意调用的是client-server的地址。

然后再次调用测试接口,查看打印日志:



喜欢的小伙伴可以关注我的个人微信公众号,获取更多学习资料!

以上是关于SpringCloud H版 Config+Bus 实现全局配制刷新的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

SpringCloud H版 Stream 消息驱动讲解

SpringCloud Config Bus webhook 只能刷新config server 不能刷新config client

5.SpringCloud -- 配置中心 Config消息总线 Bus链路追踪 Sleuth配置中心 Nacos

SpringCloud 服务配置(Config) 和 服务总线(Bus)

SpringCloud 服务配置(Config) 和 服务总线(Bus)