11-Bus
本笔记来源于:尚硅谷SpringCloud框架开发教程(SpringCloudAlibaba微服务分布式架构丨Spring Cloud)
b站视频
文章来自:
https://github.com/OT-mt/cloud2020/tree/master/springcloud-2%E5%B0%9A%E7%A1%85%E8%B0%B7%E5%91%A8%E9%98%B3-2020
脑图
简介
是什么?
Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接
干什么
这可以用于广播状态更改(例如配置更改)或其他管理指令。一个关键的想法是,Bus就像一个扩展的Spring Boot应用程序的分布式执行器,但也可以用作应用程序之间的通信渠道。当前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上。
官网资料
https://www.springcloud.cc/spring-cloud-bus.html
安装 RabbitMQ
- 下载 ErLang
https://www.erlang.org/downloads
按照默认安装即可 - 下载RabbitMQ:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7.exe
按默认安装 - 进入sbin目录输入命令:rabbitmq-plugins enable rabbitmq_management 进行安装
- 查看是否安装成功:http://localhost:15672/
- 登录 guest guest
1
2
3
4
5rabbitmq-server -detached 后台启动
Rabbitmq-server 直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止
关闭:rabbitmqctl stop全局广播
新建项目 cloud-config-client3366,与3355一样
设计思想
- 利用消息总线触发一个客户端/bus/refresh从而刷新所有客户端配置
- 利用消息总线触发一个服务端 ConfigServer 的/bus/refresh端点从而刷新所有客户端
- 明显二更合适
- pom
1
2
3
4
5
6<!-- 添加消息总线RabbitMQ支持 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency> - yml
1
2
3
4
5
6
7
8
9
10
11
12#rabbitmq配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#暴露bus刷新配置端点
management:
endpoints:
web:
exposure:
include: 'bus-refresh'给cloud-config-client3355客户端提供消息总线支持
- pom
1
2
3
4
5
6<!-- 添加消息总线RabbitMQ支持 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency> - yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15spring:
application:
name: cloud-client
cloud:
config:
label: master
name: config
profile: dev
uri: http://localhost:3344
#rabbitmq配置,注意与服务端不同这个在spring下面
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest给cloud-config-client3366客户端提供消息总线支持
测试
- 改变github内容
- 发送post请求:
1
curl -X POST "http://localhost:3344/actuator/bus-refresh"
动态刷新定点通知
- 使用
curl -X POST “http://localhost:配置中心端口号/actuator/bus-refresh/{destination}" - 本例中
curl -X POST “http://localhost:3344/actuator/bus-refresh/cloud-client:3355"
代表只通知3355
11-Bus
http://yuanql.top/2023/06/27/13_SpringCloud/springcloud-2尚硅谷周阳-2020/11-Bus/