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
SpringCloud H版 Config+Bus 实现全局配制刷新_第1张图片

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

1. 修改 config server端

在pom中添加依赖:


    org.springframework.cloud
    spring-cloud-starter-bus-amqp

配制文件修改:

spring:
  application:
    name:  config-center #注册进Eureka服务器的微服务名
  cloud:
    config:
      server:
        git:
#          uri: [email protected]: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端


    org.springframework.cloud
    spring-cloud-starter-bus-amqp

配制文件修改:

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 中的配制内容:
SpringCloud H版 Config+Bus 实现全局配制刷新_第2张图片
使用PostMan调用接口:http://localhost:8070/actuator/bus-refresh 注意调用的是client-server的地址。

SpringCloud H版 Config+Bus 实现全局配制刷新_第3张图片

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

在这里插入图片描述

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

你可能感兴趣的:(微服务,spring,cloud,java,微服务)