Bus 概述
- Spring Cloud Bus是用轻量的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相通信。
- Spring Cloud Bus 可选的消息中间件包括 RabbitMQ 和 Kafka 。config server 发给bus,bus发给RabbitMQ
RabbitMQ Windows 安装
一、安装Erlang
-
双击资料中提供的 otp_win64_22.1.exe ,选择对应安装目录,一路下一步,完成安装。
-
设置Erlang环境变量
(1)新建ERLANG_HOME
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8KwXu5q-1679070536579)(imgs\1585755246863.png)]
(2)修改环境变量path,增加Erlang变量至path,%ERLANG_HOME%\bin;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Hj1d4Cc-1679070536580)(imgs\1585755661841.png)]
(3)打开cmd命令框,输入erl,如果能看到版本号,则Erlang安装完成。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9JJWCVq-1679070536580)(imgs\1585755758154.png)]
二、安装RabbitMQ
-
双击资料中提供的 rabbitmq-server-3.7.7.exe ,选择对应安装目录,一路下一步,完成安装。
-
设置环境变量
(1) 新建RABBITMQ_HOME
(2)修改环境变量path,增加rabbitmq变量至path,%RABBITMQ_HOME%\sbin
- 查看信息。打开cmd命令框,切换至D:\Program Files\rabbitmq_server-3.7.7\sbin目录下,输入rabbitmqctl status
- 安装插件,命令:rabbitmq-plugins.bat enable rabbitmq_management。出现下面信息表示插件安装成功。
三、启动RabbitMQ
-
启动RabbitMQ:rabbitmq-server -detached 后台启动
-
停止RabbitMQ:rabbitmqctl stop
-
rabbitmq启动成功,浏览器中http://localhost:15672,默认用户名和密码 都是 guest
至此,rabbitMQ安装部署完成。
Bus 快速入门
- 分别在 config-server 和 config-client中引入 bus依赖:bus-amqp
- 分别在 config-server 和 config-client中配置 RabbitMQ
- 在config-server中设置暴露监控断点:bus-refresh
- 启动测试
config-server修改
<!--bus-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
server:
port: 9527
spring:
application:
name: config-server
# spring cloud config
cloud:
config:
server:
# git 的 远程仓库地址
git:
uri: https://gitee.com/cheng-penga/chengpeng-config.git
label: master # 分支配置
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'
config-provider和config-consumer修改
<!--bus-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>