2019独角兽企业重金招聘Python工程师标准>>>

概要

  • 什么是Spring Cloud Netflix Bus?
  • 怎么用 Spring Cloud Netflix Bus?

什么是Spring Cloud Netflix Bus?

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

Spring Cloud Bus的更新只对三种情况有效

  1. @ConfigurationProperties
  2. @RefreshScope
  3. 日志级别

怎么用Spring Cloud Netflix Bus?

百说不如一run,构造一个例子来实现

  • 基于实战一的例子
  • 下载并运行rabbit
  • 在Config Server及client添加bus,actuator依赖
         <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>

@ConfigurationProperties 实现

  • 修改Config Client 的LuckyWordController,注意去掉@Value注解,和添加getter/setter
@RestController
@ConfigurationProperties(prefix = "wordConfig")
public class LuckyWordController {String luckyWord;@RequestMapping("/lucky-word")public String showLuckyWord() {return "The lucky word is: " + luckyWord;}public String getLuckyWord() {return luckyWord;}public void setLuckyWord(String luckyWord) {this.luckyWord = luckyWord;}
}

@RefreshScope 实现

@RestController
@RefreshScope
public class LuckyWordController {@Value("${wordConfig.luckyWord}")String luckyWord;@RequestMapping("/lucky-word")public String showLuckyWord() {return "The lucky word is: " + luckyWord;}
}
  • 修改git repository
wordConfig:luckyWord: mmb
  • 查看http://localhost:8002/lucky-word
  • 修改git repository
wordConfig:luckyWord: mmb222
  • POST请求http://localhost:8001/bus/ref...
  • 查看http://localhost:8002/lucky-word 是否改变

@ConfigurationProperties的改变时直接重新绑定
@RefreshScope不仅仅是重新绑定,它是重新再绑定一个bean.@RefreshScope的工作原理Spring创建一个代理Proxy,Proxy中包含注入的依赖及调用目标bean的方法,当更新Refresh时,新Proxy就会指向改变的bean,而老的Proxy还指向老的bean.所以它更安全

特别感谢 kennyk65
Spring Cloud 中文用户组 31777218
Spring-Cloud-Config 官方文档-中文译本
Spring Cloud Netflix 官网文档-中文译本
本文实例github地址

https://segmentfault.com/a/1190000006226542

转载于:https://my.oschina.net/xiaominmin/blog/1591002

Spring Cloud实战(六)-Spring Cloud Netflix Bus相关推荐

  1. Spring Security 实战:Spring Boot 下的自动配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 我们在前几篇 ...

  2. Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper

    1. 概述 本文的内容包括如下内容: Spring Boot集成mybatis Spring Boot集成pagehelper分页插件,定义分页的相关类 实现工具类:model转dto,实现数据层和传 ...

  3. 【spring cloud】(六)消息总线——springcloud Bus

      各位小伙伴们大家好,欢迎来到这个小扎扎的spring cloud专栏,在这个系列专栏中我对B站尚硅谷阳哥的spring cloud教程进行一个总结,鉴于 看到就是学到.学到就是赚到 精神,这波依然 ...

  4. 【struts2+hibernate+spring项目实战】Spring计时器任务 Spring整合JavaMail(邮件发送)(ssh)

    一.常用数据频度维护 对于系统使用度较高的数据,客户在查看时希望这些数据最好先出现,此时需要为其添加排序规则.在进行排序时,使用次数成为排序的依据.因此需要设置一个字段用来描述某种数据的使用次数,也就 ...

  5. Spring Security 实战:基于配置的接口角色访问控制

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1 ...

  6. Spring Security 实战干货: RBAC权限控制概念的理解

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1 ...

  7. Spring Security 实战:使用 JWT 认证访问接口

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 欢迎阅读Spring Security 实战 ...

  8. Spring Security 实战:自定义异常处理

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 最近实在比较忙,很难抽出时间来继续更  [S ...

  9. Spring Security 实战干货:玩转自定义登录

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 1. 前言 前面的关于 Spring Security  ...

  10. Spring Boot实战pdf

    下载地址:网盘下载 Spring Boot实战以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管理更加轻松有趣.作者行文亲切流畅,以大量示例讲解了S ...

最新文章

  1. Oracle数据库之集合运算
  2. zsh 隐藏用户名和主机
  3. 【iOS7一些总结】9、与列表显示(在):列表显示UITableView
  4. WebSocket实现实时通信
  5. 希捷银河声音大_【推仔说新闻】那款硬盘它终于来了 希捷推出首款双磁臂硬盘...
  6. hihoCoder挑战赛14 -1223
  7. 探索Google App Engine背后的奥秘(5)- Datastore的设计(转载)
  8. shell自动交互之expect脚本_转
  9. 《大话数据结构》读后总结(八)
  10. VC 2015 x86的DLL绿色包(QT 5.6)
  11. 计算机桌面出现蓝色底色,电脑桌面图标有蓝色阴影 - 电脑桌面图标有蓝底怎么办 - 安全专题...
  12. 【保姆级教程】VMware+CentOS 7 配置静态IP(小名已排雷,放心跟着教程走)
  13. QT 简单实现自定义标题栏
  14. 云服务器系列2-frp-云服务器内网穿透windows远程控制实践
  15. Lipschitz 条件
  16. Windows平台chrome webdriver的下载与安装
  17. WinForm常用控件
  18. 华为ac配置radius认证服务器_华为无线控制器启用802.1X认证配置
  19. Monkey框架(测试方法篇) - monkey测试实例
  20. Linux环境问题--Miniconda安装python环境搭建

热门文章

  1. 《oracle每天一练》Oracle冷备份与数据恢复
  2. 海豚浏览器历年笔试题
  3. .NET中的数据结构——表
  4. [做一个幸福的记号 忘了琐碎的烦恼]西兰花猪柳
  5. 算法笔记_171:历届试题 小朋友排队(Java)
  6. bzoj2705 [SDOI2012]Longge的问题
  7. QQ 静态截图程序模拟实现
  8. RPC理论以及Dubbo的使用介绍
  9. spark成长之路(1)spark究竟是什么?
  10. 绘图库:Matplotlib