1、概述
1.1、Springcloud Bus 概念
1.2、Springcloud Bus 作用
1.3、总线
1.4、设计思想
1.4.1、利用消息总线触发一个客户端/bus/refresh,而刷新所有客户端的配置
1.4.2、利用消息总线触发一个服务端ConfigServer的/bus/refresh端点,刷新所有客户端的配置
1.4.3、通常采用第二种设计思想
2、RabbitMQ 环境配置
2.1、下载安装Erlang
2.1.1、下载地址 :Downloads - Erlang/OTP
2.1.2、安装
2.1.3、将Erlang添加至环境变量中
2.1.4、测试
2.2、安装RabbitMQ
3、SpringCloud Bus动态刷新全局广播
3.1、配置好RabbitMQ环境
3.2、新建微服务
3.2.1、服务端
3.2.2、客户端
3.3、给配置中心服务端添加消息总线支持
3.3.1、修改POM文件
3.3.2、修改yaml配置文件
3.4、给配置中心客户端添加消息总线支持
3.4.1、修改POM文件
3.4.2、修改yaml配置文件
3.5、测试
4、SpringCloud Bus动态定点通知
4.1、需求具体说明
4.2、操作方法
1)SpringCloud Bus 是用来将分布式系统的节点与轻量级消息系统链接起来的框架
2)SpringCloud Bus 整合了 Java 的事件处理机制和消息中间件的功能
3)SpringCloud Bus 目前支持RabbitMQ和Kafka
1)SpringCloud Bus 能管理和传播分布式系统间的消息,类似一个分布式执行器。
2)SpringCloud Bus 可用于广播状态更改、事件推送以及微服务间的通信通道。
1.在系统变量中添加ERLANG_HOME,为Erlang中bin目录的根目录
2.在Path目录下添加%ERLANG_HOME%\bin
进入官网下载 https://www.rabbitmq.com/download.html,直接安装即可。
添加消息总线相关依赖
org.springframework.cloud
spring-cloud-starter-bus-amqp
添加rabbitmq相关配置:
server:
port: 3344
spring:
application:
name: cloud-config-center #注册进eureka的微服务名称
cloud:
config:
server:
git:
uri: https://gitee.com/uclass/springcloud-config.git #git仓库名字
# 搜索目录
search-paths:
- springcloud-config
# 读取分支
label: master
# rabbitmq相关配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka
# 暴露bus刷新配置的端点
management:
endpoints:
web:
exposure:
include: 'bus-refresh'
添加消息总线相关依赖
org.springframework.cloud
spring-cloud-starter-bus-amqp
添加rabbitmq相关配置:
server:
port: 3355
spring:
application:
name: config-client
cloud:
# 客户端配置(通过3344获得git中的配置文件)
config:
label: master #分支名称
name: config #配置文件名称
profile: dev #读取后缀名称 上述三个综合http://config-3344.com:3344/master/config-dev.yml
uri: http://localhost:3344/ #配置中心的地址
# rabbitmq相关配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
# 暴露监控端点
management:
endpoints:
web:
exposure:
include: "*"
1.修改git远程仓库配置信息
2.curl -X POST "http://localhost:3344/actuator/bus-refresh" 刷新配置中心服务端
3.访问url,查看读取到的相关配置信息
4.该方法,一次修改,广播通知,处处生效
当配置信息发生修改时,不想通知全部微服务,只想定点通知特定微服务