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
如果没有报错就是成功执行了,然后就实现了刷新效果