栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring cloud bus相关图形

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring cloud bus相关图形

一 具体:Spring Cloud Config配置全局刷新 1 业务、需求

        业务:spring cloud netflix + spring cloud config搭建的微服务

        需求:spring cloud config配置的全局刷新

2 解决方案

        架构:多个微服务模块

        功能:全局刷新

        工具:spring cloud bus就可以用来实现配置的自动刷新

3 高效学习 (1)思想

        Spring Cloud Bus使用轻量级的消息代理/总线。

(2)流原

        Spring Cloud Bus中可以使用例如RabbitMQ、Kafka等消息服务器,来把消息广播到各个微服务模块,以达到通知各个微服务spring cloud config配置变更的目的,最终实现spring cloud config全局的自动刷新。

        Spring Cloud Bus想象成一个分布式的Spring Boot Actuator。如果只用一个Spring Boot Actuator那么,只能手动对单台微服务模块进行spring cloud config配置的刷新。而使用Spring Cloud Bus,可以对所有的微服务模块进行spring cloud config配置的刷新。

  1. 第一步:用户,post请求 + spring cloud bus的bush/refresh,刷新spring cloud config服务。
  2. 第二步:spring cloud config发送配置变更消息 RabbitMq消息服务器
  3. 第三步:所有的微服务模块(1~4)都去监听并接收配置变更消息
  4. 第四步:所有的微服务模块,主动去spring cloud config获取最新的配置信息
  5. 第五步:spring cloud config会去远程的git仓库 或者 本地git仓库(如果缓存了的话)获取最新的配置信息返回给所有微服务模块。
(3)注,应用

服务端配置(spring cloud config项目):

  1. 第一步:加入依赖:spring-cloud-starter-bus-amqp、spring-boot-starter-actuator:
    
    
        org.springframework.cloud
        spring-cloud-starter-bus-amqp
    
     
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
    注:如果机器充足的话,不需要使用spring cloud config做为spring cloud bus服务,可以单独为spring cloud bus单独起一个微服务。如下图所示:

    如果使用上图所示的架构,那么如果spring cloud config项目的配置更改后,可直接对单独的spring cloud bus微服务进行刷新,把配置更新消息推送到Rabbitmq消息服务器中......。
  2. 第二步:配置文件增加rabbitmq的配置、开户spring cloud bus、开启所有端点
    #配置rabbitmq
    spring.rabbitmq.host=192.168.10.128
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=guest
    spring.rabbitmq.password=guest
     
    #开启spring cloud bus,默认是开启的,也可以省略该配置
    spring.cloud.bus.enabled=true
     
    #打开所有的web访问端点
    management.endpoints.web.exposure.include=*
    

  1. ​​​​​​​​​​​客户端配置,(需求接收配置变更的所有的微服务模块):
  1. 第一步:加入依赖:spring-cloud-starter-bus-amqp、spring-boot-starter-actuator。
    
    
        org.springframework.cloud
        spring-cloud-starter-bus-amqp
    
     
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
  2. 第二步:加入rabbitmq的配置信息。如果引用的是git中的配置,那记得是把rabbitmq的配置push到git远程仓库中。
    #配置rabbitmq
    spring.rabbitmq.host=192.168.10.128
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=guest
    spring.rabbitmq.password=guest
  3. 第三步:然后post方式请求地址:http://localhost:8888/actuator/bus-refresh
  4. 第四步:如果返回成功1,则RabbitMQ将收到消息
  5. 第五步:需求接收配置变更的所有的微服务模块会消费消息,实现全局刷新

测试:

  1. 第一步:启动rabbitmq
  2. 第二步:启动spring cloud config微服务
  3. 第三步:启动需求接收配置变更的所有的微服务模块
  4. 第四步:查看rabbitmq控制台的消息变化
  5. 第五步:修改配置,提交到远程git仓库
  6. 第六步:然后post方式请求spring cloud config项目:http://localhost:8888/actuator/bus-refresh
  7. 第七步:通过访问需求接收配置变更的所有的微服务模块的controller去验证是否成功。
     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号