SpringCloud极简入门>消息总线#bus

简介

通过bus组件,可以在更新git配置信息后,通过发送一个post请求,更新《server-config》拉取的配置,并以RabbitMQ将更新内容广播至其对应的各个微服务;

本篇前置:
SpringCloud极简入门>配置服务#config

实战

1、前置准备

1.1、需要开启RabbitMQ服务

cmd以管理员权限执行net stop RabbitMQ && net start RabbitMQ

1.2、对zipkin有影响

原本cmd执行java -jar zipkin-server-2.10.1-exec.jar,改为java -jar zipkin-server-2.10.1-exec.jar --zipkin.collector.rabbitmq.addresses=localhost

2、《server-order》项目改造

2.1、添加依赖

actuator可以在修改git配置内容后刷新《server-config》服务拉取的配置值;
bus-amqp可以通过RabbitMQ通知各个微服务刷新获取的git配置值;

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

2.2、yml配置

  • application.yml添加

    #支持bus
    management:
      endpoints:
        web:
          exposure:
            include: "*"
          cors:
            allowed-origins: "*"
            allowed-methods: "*"
    
  • bootstrap.yml添加

    #读取server-config服务上当前服务的git配置
    spring:
      cloud:
        config:
          label: main
          profile: dev
          discovery:
            enabled: true
            service-id: server-config
        #支持bus
        bus:
          trace:
            enabled: true
          enabled: true
      #支持bus
      rabbitmq:
        host: localhost
        port: 5672
        username: guest
        password: guest
    

2.3、添加注解

在含@Value和@ConfigurationProperties的获取git配置的类上声明注解@RefreshScope

3、配置完毕,查看效果

1、分别启动《server-center》,《server-config》,《server-order》,请求http://localhost:7002/cfgP,获得结果

GitAutoRefreshConfig{env='dev', user=User{username='catface', password='root'}}

2、修改git上的配置值env=devdevdev;

3、 postman发起post请求http://localhost:7002/actuator/bus-refresh后再访问http://localhost:7002/cfgP,获得结果,可以看到在没有重启服务的情况下,读取的配置文件更新了;

GitAutoRefreshConfig{env='devdevdev', user=User{username='catface', password='root'}}

4、再以7003端口启动《server-order》服务,修改git配置后,操作上述步骤3、后会发现以7002和7003端口读取的配置值均是更新后的,这就是RabbitMQ将更新的git配置广播给了各个微服务;

总结

通过bus组件,可以在更新git配置信息后,通过发送一个post请求,更新《server-config》拉取的配置,并以RabbitMQ将更新内容广播至其对应的各个微服务;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值