SpringCloud(八)——Bus组件

SpringCloud(八)——Bus组件

前言

Bus 中文翻译是消息总线,SpringCloud消息总线在分布式系统中使用一个轻量级的消息中间件来连接所有服务节点。这句话中一共有一下几个核心概念:

  • SpringCloud bus组件;
  • 轻量级消息中间件;
  • 微服务节点。

在SpringCloud bus 中支持两种主流的消息中间件:

  • RibbitMQ:该组件的底层协议是AMQP,是一种处理消息总线处理节点的协议;(Ribbit Message Queue;消息队列):

    • 消息:指系统间数据传递;
    • 队列:是一种数据结构,先进入该数据结构的数据先被调用(先进先出,不太理解的同学可以去学习数据结构)。

    MQ定义:可以保证消息传递的顺序,实现系统之间的数据传递。

  • Kafka:

通过SpringCloud bus 的广播特性(MQ特性),当某一个状态(在这里我们使用它来监测配置文件)发生改变后,通知到bus中所有的节点更新当前的(配置文件)状态。

SpringCloud bus的实现原理是构建一个服务,集成RibbitMQ,通过RibbitMQ中间件来连接各个微服务节点,该构件的应用场景:

  • 异构系统间解耦;
  • 异步处理,优化程序性能;

SpringCloudBus配置与使用

配置

统一配置中心配置
  • 引入依赖
<!--springcloudbus-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
  • 配置Bus 组件连接rabbitMQ相关的参数
# 暴露所有的端点
management.endpoints.web.exposure.include=*
# 配置Bus组件连接RabbitMQ的参数
spring.rabbitmq.host=RabbitMQ安装服务器的IP地址
spring.rabbitmq.port=5672
# 同一个系统的服务必须使用同一套用户名和密码(主机)
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
# 使用默认的根主机
spring.rabbitmq.virtual-host=/
其他服务配置
  • 微服务中,引入依赖
<!--springcloudbus-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
  • 将配置Bus 组件连接rabbitMQ相关的参数放到远端存放
# 配置Bus组件连接RabbitMQ的参数
spring.rabbitmq.host=RabbitMQ安装服务器的IP地址
spring.rabbitmq.port=5672
# 同一个系统的服务必须使用同一套用户名和密码(主机)
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
# 使用默认的根主机
spring.rabbitmq.virtual-host=/

# 引入SpringCloud Bus依赖后会出现连接错误,即项目启动就会连接对应的轻量级中间件,而相关配置文件在远端仓库
# true表示在远端配置获取成功之前,出现连接失败的错误是允许的
spring.cloud.config.fail-fast=true

使用

在使用的时候需要先启动统一配置中心,然后再启动其他微服务(注意:这一部分笔记是连续的,要是想使用SpringCloudBus,前面的consul、configserver等配置也必须写上)。

如果在修改了远端配置之后,我们可以不需要启动任何服务,直接对统一配置中心发送一个POST请求即可。

在远端配置更新后,可以向统一配置中心发送 post 请求http://localhost:port/actuator/bus-refresh

但是,在新版本中,路径为http://localhost:port/actuator/busrefresh。指定服务刷新需要在路径后面添加对应服务的ID,例如:http://localhost:port/actuator/busrefresh/configclient,这样就可以单独更新这一个服务的相关配置。

总结

这一部分的知识点并不是很多,只是需要配合对应的软件。安装软件的部分如果和笔记部分写在一起,可能会使阅读产生混乱,所以将这一部分知识点拆成了三部分,大家请按顺序阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值