Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。

准备工作

本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置 spring-cloud-starter-bus-amqp ;这就是说我们需要装rabbitMq,点击rabbitmq下载。至于怎么使用 rabbitmq,搜索引擎下。

改造config-client

在pom文件加上起步依赖spring-cloud-starter-bus-amqp,完整的配置文件如下:

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><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></dependencies>

在配置文件application.properties中加上RabbitMq的配置,包括RabbitMq的地址、端口,用户名、密码。并需要加上spring.cloud.bus的三个配置,具体如下:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guestspring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
management.endpoints.web.exposure.include=bus-refresh

ConfigClientApplication启动类代码如下:

/*** @author: Tu9ohost*/
@SpringBootApplication
@RestController
@EnableEurekaClient
@EnableDiscoveryClient
@RefreshScope
public class ConfigClientApplication {public static void main(String[] args) {SpringApplication.run(ConfigClientApplication.class, args);}@Value("${foo}")String foo;@RequestMapping(value = "/hi")public String hi(){return foo;}
}

依次启动eureka-server、confg-cserver,启动两个config-client,端口为:8881、8882。
访问http://localhost:8881/hi 或者http://localhost:8882/hi 浏览器显示:

foo version 23

这时我们去代码仓库将foo的值改为“foo version 24”,即改变配置文件foo的值。如果是传统的做法,需要重启服务,才能达到配置文件的更新。此时,我们只需要发送post请求:http://localhost:8881/actuator/bus-refresh,你会发现config-client会重新读取配置文件

这时我们再访问http://localhost:8881/hi 或者http://localhost:8882/hi 浏览器显示:

foo version 24

另外,/actuator/bus-refresh接口可以指定服务,即使用”destination”参数,比如 “/actuator/bus-refresh?destination=customers:**” 即刷新服务名为customers的所有服务。

分析

当git文件更改的时候,通过pc端用post 向端口为8882的config-client发送请求/bus/refresh/;此时8882端口会发送一个消息,由消息总线向其他服务传递,从而使整个微服务集群都达到更新配置文件。

转载于:https://www.cnblogs.com/Tu9oh0st/p/10892003.html

SpringCloud学习(八)消息总线(Spring Cloud Bus)(Finchley版本)相关推荐

  1. 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)

    首先:欢迎各位学习java和大数据的程序员朋友们加入Java交流学习群: 721506929,群内提供免费的架构学习资料,有需要的朋友可以进群来学习. https://www.fangzhipeng. ...

  2. 原 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f8-bus/ 本文出自方志朋的博客 转载请标明出处: Spr ...

  3. SpringCloud学习笔记 - 消息总线 - Spring Cloud Bus

    1. 消息总线简介 消息代理中间件构建了一个共用的消息主题让所有微服务实例订阅,当该消息主题产生消息时会被所有微服务实例监听和消费. 消息代理又是什么?消息代理是一个消息验证.传输.路由的架构模式,主 ...

  4. 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)V2.0_dev

    前言: Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来. 它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控. 本文要讲述的是用Spring Cloud Bus实 ...

  5. 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)

    转:https://blog.csdn.net/forezp/article/details/70148235 Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播 ...

  6. SpringCloud微服务云架构构建B2B2C电子商务平台之-(八)消息总线(Spring Cloud Bus)...

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  7. (八)java版spring cloud+spring boot 社交电子商务平台-消息总线(Spring Cloud Bus)

    电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要 ...

  8. java版spring cloud+spring boot+redis社交电子商务平台(八)消息总线(Spring Cloud Bus)

    B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控. ...

  9. Java版本多用户B2B2C商城源码-(八)消息总线(Spring Cloud Bus)

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

最新文章

  1. java字符串去掉空格
  2. 深究的东西 - HTML5地理应用
  3. ORA-27125: unable to create shared memory segment的解决方法(转)
  4. CYQ.Data 轻量数据层之路 使用篇-MAction 取值赋值 视频[带音乐] F (二十四)
  5. 华为彭松:基于C.A.F模型构建联接竞争力,创造新增长
  6. 进程、地址空间、文件、I/O、保护、虚拟内存
  7. Web/前端性能优化
  8. 产品设计学习(三)——用户画像与特征工程
  9. qtablewidget控件居中_单元格Edi期间QTableWidgetItem中的文本居中
  10. 如何在iPhone和iPad上的Safari中在网页上查找文本
  11. 安装 KubeOperator
  12. cocos之游戏手柄控制实例
  13. H桥驱动电机,STM32 PWM互补输出功能误用分析
  14. 海量之道之弱联网优化
  15. 网络重置最详细解决方法
  16. 为什么会有高防CDN的出现?
  17. NSSCTF-SWPU新生赛
  18. 教师资格证报名网页兼容问题
  19. 笔记-GPS设备定位方式
  20. 暗影精灵dns服务器未响应,惠普WASD暗影精灵实战中土世界暗影魔多

热门文章

  1. 《408计算机网络》综合应用题
  2. 素数-欧拉筛-Python实现
  3. 2018年第九届蓝桥杯 - 省赛 - C/C++大学A组 - A. 分数
  4. 【Tools】VNC Viewer 6.20安装详解
  5. 【Protocol Buffer】Protocol Buffer入门教程(四):序列化和反序列化
  6. beanpostprocessor与@autowired的关系
  7. 剑指offer--整数中1出现的次数
  8. 三数之和—leetcode15
  9. Codeforces Round #547 (Div. 3)
  10. php memcached mysql_PHP Memcached使用详解