spring cloud bus相关图形

spring cloud bus相关图形,第1张

一 具体: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去验证是否成功。
     

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/872123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存