微服务学习记录之-Spring Cloud Bus
博主公司微服务架构使用了spring cloud config远程配置中心,前两天博主修改了远程配置文件之后,线上服务立马就更新了新的配置文件,于是突发奇想:我改了配置文件后,线上服务是如何实时读取到的呢?然后就开始疯狂百度、问老员工。总结如下:spring cloud bus作为消息总线,利用MQ的广播机制在分布式的系统中传播消息,这样你修改了配置文件之后,MQ就会通知所有服务,立马给我滚去读新的配置文件,这样就能实时读取到了。
Spring Cloud Bus的工作流程如下:
- 提交代码触发post给远程配置中心Server端发送bus/refresh
- 远程配置中心Server端接收到请求并发送给Spring Cloud Bus
- Spring Cloud Bus接到消息并通知给其它客户端获取最新配置
- 其它客户端接收到通知,请求Server端获取最新配置
Spring Cloud Bus搭建步骤:
博主公司使用RabbitMQ作为消息中间件,也可以用其他的MQ插件,当然使用Bus之前需要导入amqp的jar包,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
然后在远程配置中心的父级yml文件中添加了RabbitMQ的配置并开启Bus的消息追踪:
## 开启消息跟踪
spring.cloud.bus.trace.enabled=true
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=
spring.rabbitmq.password=
这样Spring Cloud Bus就搭建完成了,恭喜恭喜