Bus 中文翻译是消息总线,SpringCloud消息总线在分布式系统中使用一个轻量级的消息中间件来连接所有服务节点。这句话中一共有一下几个核心概念:
SpringCloud bus组件;轻量级消息中间件;微服务节点。
在SpringCloud bus 中支持两种主流的消息中间件:
RibbitMQ:该组件的底层协议是AMQP,是一种处理消息总线处理节点的协议;(Ribbit Message Queue;消息队列):
消息:指系统间数据传递;队列:是一种数据结构,先进入该数据结构的数据先被调用(先进先出,不太理解的同学可以去学习数据结构)。
MQ定义:可以保证消息传递的顺序,实现系统之间的数据传递。
Kafka:
通过SpringCloud bus 的广播特性(MQ特性),当某一个状态(在这里我们使用它来监测配置文件)发生改变后,通知到bus中所有的节点更新当前的(配置文件)状态。
SpringCloud bus的实现原理是构建一个服务,集成RibbitMQ,通过RibbitMQ中间件来连接各个微服务节点,该构件的应用场景:
异构系统间解耦;异步处理,优化程序性能;
文章目录SpringCloud(八)——Bus组件
前言SpringCloudBus配置与使用
配置
统一配置中心配置其他服务配置 使用 总结
SpringCloudBus配置与使用 配置 统一配置中心配置引入依赖
org.springframework.cloud spring-cloud-starter-bus-amqp
配置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=/其他服务配置
微服务中,引入依赖
org.springframework.cloud spring-cloud-starter-bus-amqp
将配置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,这样就可以单独更新这一个服务的相关配置。
总结这一部分的知识点并不是很多,只是需要配合对应的软件。安装软件的部分如果和笔记部分写在一起,可能会使阅读产生混乱,所以将这一部分知识点拆成了三部分,大家请按顺序阅读。



