在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化。但试想一下, 在分布式系统中,如果存在很多个客户端都需要刷新改配置,通过这种方式去刷新也是一种非常痛苦的事情。那有没有什么办法让系统自动完成呢? 之前我们提到用githook或者jenkins等外部工具来触发。现在说另外一种思路, 如果refresh命令可以发送给config server,然后config server自动通知所有config client, 那么就可以大大简化配置刷新工作。这样,虽然仍然需要通过refresh命令触发, 但通过webhook等钩子方式, 我们只需要将关联的命令挂到配置中心上,而不需要每个配置客户端都去关联。

现在,我们通过整合消息队列Rabbitmq来完成这件事。我们的目标是, 当git仓库中的配置一旦更改,将refresh命令发送给配置中心,然后配置中心通过消息队列,自动通知所有使用了该配置的刷新各自配置。

Spring Cloud Netflix Bus是Spring Cloud的消息机制,当Git Repository 改变时,通过POST请求Config Server的/bus/refresh,Config Server 会从repository获取最新的信息并通过amqp传递给client,如图所示.

1. RabbitMQ的安装和配置的过程,这里就不赘述了。

2. 以第三节的程序为基础, config Server和config client两个项目中均添加一些内容, 在pom.xml中增加

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

2. 在配置文件bootstrap.yml(config client里面是application.yml)中增加关于RabbitMQ的连接和用户信息:

spring:rabbitmq:host: localhostport: 5672username: springcloudpassword: 123456

3. 以上配置高好后,配置刷新,就只需要向config server发送 /bus/refresh的POST请求就可以了.

4. 如果用poster等发送POST请求是出现错误:“Full authentication is required to access this resource.", 那么可以在yml配置文件中加入以下内容禁止Config server的权限拦截。

management:security:enabled: false  #忽略权限拦截

SpringCloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus相关推荐

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

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

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

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

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

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

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

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

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

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

  6. SpringCloud学习(八)消息总线(Spring Cloud Bus)(Finchley版本)

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

  7. (三)springcloud 消息总线-spring cloud bus

    RabbitMQ 1.RabbitMQ环境:略 2.每个服务都添加依赖,或者聚合工程中统一添加 <dependency><groupId>org.springframework ...

  8. springcloud微服务架构开发实战:分布式消息总线

    消息总线的定义 前面在1.4.2节中强调过,在微服务架构中,经常会使用REST 服务或基于消息的通信机制. 在3.6节中也详细介绍了消息通信的实现方式.消息总线就是一种基于消息的通信机制. 消息总线是 ...

  9. SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务

    首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...

最新文章

  1. UE capability与 双连接相关的参数。
  2. 命题思路或将转型,命题方向路在何方
  3. android intent action 介绍大全
  4. 一起播四个视频的AVS脚本
  5. Keras:Transfer learning
  6. 推荐系统之---如何理解低秩矩阵?
  7. 一个项目工程的重构小结
  8. This Android SDK requires Android Developer Toolkit version 23.0.0 or above
  9. textbox根据内容自动调整高度
  10. 2、Qt Project之鼠标事件监控
  11. Dynamics Ax 2012中调用外部web服务
  12. vc2012 异常捕获并处理
  13. 植被抽稀lisp程序_地形图缩编中植被符号抽稀方法.doc
  14. 如何自定义MATLAB神经网络激活函数
  15. C学习笔记之---八皇后算法
  16. jetbrains DataGrip 1.0注册破解方法
  17. Odoo报表的report标签和报表格式定义
  18. 解决IDEA提交代码时提示“Performing Code Analysis...”
  19. 强化学习个人学习总结
  20. Tkinter(二) | 点击按钮显示图片

热门文章

  1. 【OpenCV 例程200篇】94. 算术平均滤波器
  2. 【OpenCV 例程200篇】05. 图像的属性(np.shape)
  3. mysql 5.7 redo replacation_mysql replace
  4. Leedcode10-linked-list-cycle-ii
  5. TensorFlow8-mnist手写数字识别入门
  6. 二叉树---树的深度递归理解
  7. linux Ubuntu安装ftp并将本地文件上传到云服务器
  8. UI控件之UISlider
  9. Android Studio、 补充知识以及主要组件
  10. 搜索提示时jquery的focusout和click事件冲突问题完美解决