Bus消息总线

Bus 消息总线

在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共同的消息主题,并让系统中所有的微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其它连接在该主题上的实例都知道的消息。

基本原理

Config Client 实例都监听 MQ 中同一个 topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个信息放入到 topic 中,这样其它监听同一个 topic 的服务就能得到通知,然后去更新自身的配置。目前Spring Cloud Bus 只支持 Rabbit 和 Kafuka。

安装RabbitMQ

使用Docker

docker pull rabbitmq:management
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management

实现

依赖坐标

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

并配置 MQ

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

配置中心配置

# 暴露bus刷新配置端点
management:
  endpoint:
    web:
      exposure:
        include: 'bus-refresh'

服务端配置

只需要配置好 MQ 并暴露端点

# 暴露监控端点
management:
  endpoint:
    web:
      exposure:
      	# * 为全部, refresh
        include: "*"

刷新配置中心

全部通知
POST http://localhost:3344/actuator/bus-refresh
定点通知
POST http://localhost:3344/actuator/bus-refresh/config-client:3355
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值