bus

本文介绍了如何通过Spring Cloud Bus和RabbitMQ实现配置的动态刷新,包括RabbitMQ的安装与启动,以及在服务端和客户端添加支持的步骤。通过特定的POST请求,可以实现对特定端口或者所有客户端的配置更新,降低了系统耦合。
摘要由CSDN通过智能技术生成

这部分内容是和前面的config连在一起的。为了突出显示,只展示新加的部分。

记住一定要保证rabbit的运行,不然3355和3366都连不上

rabbitmq环境

  1. erlang

    http://erlang.org/download/otp_win64_21.3.exe

  2. rabbit

    https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.14/rabbitmq-server-3.7.14.exe

  3. 开启插件并启动

    #在rabbit安装目录下的sbin文件夹cmd
    # 启动rabbitmq_managemen是管理后台的插件、我们要开启这个插件才能通过浏览器访问登录页面
    rabbitmq-plugins enable rabbitmq_management
     
    # 启动rabbitmq
    rabbitmq-server start
     
    #访问登录页面 用户名和密码都是guest
    http://localhost:15672
    

0消息总线

先回顾遗留问题:github修改后,curl -X POST “http://localhost:3355/actuator/refresh” ,每次都需要针对具体的端口来发送请求。

我们想一步到位,可以每次修改发一次post,但不能每个端口发一次。

现在有两种架构:要么使用客户端通知全部,要么使用服务端通知全部。

我们选后者:功能单一,降低耦合。

0添加3366客户端作为对比

​ rabbitmq的位置不一样,服务端的是打头,客户端的是和cloud齐平

1.给3344服务端添加支持

  1. pom

    <!--rabbitmq的支持-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            </dependency>
    
  2. yaml

    找到rabbitmq

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

2两个客户端支持

不同点:1.服务端是application.yml,两个客户端是bootstrap.yml

​ 2. 服务端的rabbitmq是打头,客户端是和cloud同级

3post开启通知

1定点通知

上面的都是服务器广播到所有配置客户端,可以利用post来指定这次具体通知谁

curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3355"

总结一下测试方法

三种post请求

  1. 点对点更新(端口)

    curl -X POST "http://localhost:3355/actuator/refresh"
    
  2. 总线更新

    curl -X POST "http://localhost:3344/actuator/bus-refresh"
    
  3. 总线指定更新

    curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3355"
    

查看效果

​ 分别在端口上看就好了,比如 localhost:3366/configInfo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值