文章目录
1. SpringCloud Bus
注意,这里年张图片,就代表两种广播方式
图1: 它是Bus直接通知给其中一个客户端,由这个客户端开始蔓延,传播给其他所有客户端
图2: 它是通知给配置中心的服务端,有服务端广播给所有客户端
为什么被称为总线?
就是通过消息队列达到广播的效果
我们要广播每个消息时,主要放到某个topic中,所有监听的节点都可以获取到
使用Bus:(使用rabbitMQ)
1. 配置rabbitmq环境
直接双击打开图中,启动rabbitmq客户端
2. 之前只有一个配置中心客户端,这里在创建一个
复制3355即可,创建为3366
全部复制3355的即可
2,使用Bus实现全局广播
Bus广播有两种方式:
就是上面两个图片的两种方式
这两种方式,第二种跟合适,因为:
第一种的缺点:
配置第二种方式:
1,配置3344(配置中心服务端):
1,修改配置文件:
2,添加pom
springboot的监控组件,和消息总线
2,修改3355(配置中心的客户端)
1,pom:
2,配置文件:
注意配置文件的名字,要改为bootstrap.yml
3,修改3366(也是配置中心的客户端)
修改与3355是一模一样的
4,测试(MQ客户端要开启)
启动7001,3344,3355,3366,然后输入MQ客户端链接,发现消息总线Bus已经注册上了
此时修改GitHub上的配置文件
此时只需要刷新3344,即可让3355,3366动态获取最新的配置文件curl -X POST "http://localhost:3344/actuator/bus-refresh"
其原理就是:
所有客户端都监听了一个rabbitMq的topic,我们将信息放入这个topic,所有客户端都可以送到,从而实时更新
配置定点通知
就是只通知部分服务,比如只通知3355,不通知3366
只通知3355
可以看到,实际上就是通过微服务的名称+端口号进行指定