SpringCloud之Bus 消息总线
接上篇springcloud Config
概念
上篇config的加深和扩充,一言以蔽之:
分布式自动刷新配置功能
Spring Cloud Bus 配合 Spring Cloud Config
使用可以实现配置的动态刷新
是什么:Bus支持两种消息代理:RabbitMQ和 Kafka
让客户端订阅config server ,然后通过消息中间件,让客户端统一去刷新信息
能干嘛:
Spring Cloud Bus 能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当做微服务间的通信通道。
什么是总线:
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个公用的消息主题,并让系统中所有微服务实例连接上来。由于该主题中产生的消息会被所有的实例监听和消费,所以称它为消息总线。在总线上的各个实例。都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。
基本原理
ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个信息放入到Topic中,这样其他监听同一Topic的服务就能得到通知,然后去更新自身的配置。
RabbitMQ环境配置
不同版本erlang ,对应不同的rabbitmq
erlang 21.3 rabbitmq 3.7.14 而且erlang得保证只有一个版本
1、安装Erlang,下载地址:http://erlang.org/download/otp_win64_21.3.exe
官网下载慢:http://erlang.org/download/ 可以这里下载
步骤:https://blog.csdn.net/g6256613/article/details/80191402?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162316383516780255294263%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162316383516780255294263&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-80191402.pc_search_result_cache&utm_term=%E5%AE%89%E8%A3%85erlang&spm=1018.2226.3001.4187
注意:是Path,不是ClassPath
测试安装:cmd打开,输入erl
path和Classpath的作用分别是什么:
a. path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,用于指定DOS窗口命令的路径。
b. Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。
2、安装RabbitMQ,下载地址 https://www.rabbitmq.com/install-windows.html#installer
官网有问题,从github下载
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.14
https://blog.csdn.net/qq_47588845/article/details/107986373?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162316387316780264011416%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162316387316780264011416&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29_name-1-107986373.pc_search_result_cache&utm_term=%E5%AE%89%E8%A3%85rabbitmq&spm=1018.2226.3001.4187
3、进入RabbitMQ安装目录下的sbin目录
D:\rabbitmq\rabbitmq_server-3.8.16\sbin
4、输入以下命令启动管理功能
rabbitmq-plugins enable rabbitmq_management 可视化插件
在sbin目录下打开cmd并输入上述命令便可打开
安装完成后可以在开始windows开始菜单栏发现有相关程序
5、访问地址查看是否安装成功
重新启动服务,双击sbin目录下的rabbitmq-server.bat
6、输入账号密码并登录:
打开浏览器,地址栏输入 http://127.0.0.1:15672 就可以看到登录页面
输入 guest guest 就可以登录
Bus动态刷新全局广播
设计思想和选型
必须先具备良好的RabbitMQ环境
演示广播效果,增加复杂度,再以3355位模板再制作一个3366
1.新建cloud-config-client-3366
2.POM,与之前的类似
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency