Bus消息总线

Bus消息总线:

一、Bus消息总线介绍:

​ Spring Cloud Bus 是用轻量的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相通信。

​ Spring Cloud Bus 可选的消息中间件包括 RabbitMQ 和 Kafka 。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1PdXtHH-1630044660331)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210826141857352.png)]

二、RabbitMQ回顾

​ RabbitMQ 提供了 6 种工作模式:简单模式、work queues、Publish/Subscribe 发布与订阅模式、Routing 路由模式、Topics 主题模式、RPC 远程调用模式(远程调用,不太算 MQ;暂不作介绍)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B2FYanQG-1630044660335)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210826142705128.png)]

RabbitMQ安装:链接

三、Bus入门案例:

步骤:

1.分别在 config-server 和 config-client中引入 bus依赖:bus-amqp

<!-- eureka-client -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

2.分别在 config-server 和 config-client中配置 RabbitMQ

# 配置config-server地址
# 配置获得配置文件的名称等信息
spring:
  cloud:
    config:
      # 配置config-server地址
#      uri: http://localhost:9527
      # 配置获得配置文件的名称等信息
      name: config # 文件名
      profile: dev # profile指定,  config-dev.yml
      label: master # 分支
#      从注册中心寻找config-server地址
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
# 配置rabbitmq信息
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    virtual-host: /
    
management:
  endpoints:
    web:
      exposure:
        include:  '*' #这样是暴露所有,这样不太安全

核心在于:rabbitmq和management

3.在config-server中设置暴露监控断点:bus-refresh

server:
  port: 9527
  #config的默认端口是8888
spring:
  application:
    name: config-server
#  Spring Cloud Config
  cloud:
    config:
      server:
#        git  的 远程仓库地址
        git:
          uri:  https://gitee.com/tianyinetwork/config-tianyi.git
      label:  master  # 分支配置
#  配置rabbitmq信息
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    virtual-host: /

#将自己注册到Eureka中
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

#暴露bus的刷新端点
management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

核心在于:rabbitmq和management

4.启动测试

这样就可以在命令行窗口中输入命令:

curl -X POST http://localhost:8001/actuator/bus-refresh

如果没有报错就是成功执行了,然后就实现了刷新效果
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Bus是一个用于在分布式系统中传播状态变化的消息总线。它基于Spring Cloud Stream和Spring Cloud Config构建,可以将消息广播到整个系统中的所有服务实例。通过使用Spring Cloud Bus,可以实现配置的动态刷新、事件的传播和集群中的状态同步。 下面是使用Spring Cloud Bus自定义消息总线的步骤: 1. 添加依赖:在项目的pom.xml文件中添加Spring Cloud Bus的依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> ``` 2. 配置消息代理:在应用的配置文件中配置消息代理,例如使用RabbitMQ作为消息代理: ```yaml spring: rabbitmq: host: localhost port: 5672 username: guest password: guest ``` 3. 发送自定义消息:在需要发送自定义消息的地方,使用Spring Cloud Bus提供的API发送消息。例如,可以使用`/actuator/bus-refresh`端点发送刷新配置的消息: ```shell curl -X POST http://localhost:8080/actuator/bus-refresh ``` 4. 接收自定义消息:在需要接收自定义消息的地方,使用Spring Cloud Bus提供的注解和监听器来接收消息。例如,可以使用`@RefreshScope`注解来刷新配置: ```java @RefreshScope @RestController public class ConfigController { // ... } ``` 通过以上步骤,您可以使用Spring Cloud Bus自定义消息总线来实现配置的动态刷新、事件的传播和集群中的状态同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值