七、Spring Cloud Bus

七、Spring Cloud Bus

 

    Spring Cloud Bus是轻量级的通讯组件,其中一个核心思想是通过分布式的启动器对Spring Boot应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道。

    1、配置刷新流程

        (1)、提交配置触发post请求给Config Server端的/bus/refresh接口。

        (2)、Config Server端接收到请求并发送给SpringCloud Bus总线。

        (3)、Sping Cloud Bus接收到消息并通知给其他连接的总线的客户端。

        (4)、连接客户端接收到通知,请求Server端获取最新配置

        (5)、全部客户端获取到最新的配置 

        Spring Cloud Bus整合了Java的事件处理机制和消息中间件,发送端(endpoint)构造事件event,将其publish到context上下文中(Spring Cloud Bus有一个父上下文,bootstrap),然后将事件发送到channel中(json串的message),接收端从channel中获取到message,将message转为事件event。然后将event事件publish到context上下文中,最后接收端(Listener)收到event,调用服务进行处理。整个流程中,只有发送/接收端从context上下文中取事件和发送事件是需要我们在代码中明确写出来的,其它部分都由框架封装完成。

    2、配置

        (1)、依赖

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

        (2)、application.yml配置RabbitMQ

spring:
  rabbitmq:
    addresses: 10.123.123.123:7003
    username: mq_user
    password: 123456
  cloud:
    bus:
      # 用于开启/关闭全局刷新的Listener(默认:true)
      refresh:
        enabled: true
      # 用于开启/关闭配置新增/修改的Endpoint(默认:true)
      env:
        enabled: true
      # 用于开启开启/关闭AckRemoteApplicationEvent事件的发送(默认:true)
      ack:
        enabled: true
      # 用于开启/关闭消息记录Trace的Listener(默认:true)
      trace:
        enabled: true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值