Spring Cloud实战(六)-Spring Cloud Netflix Bus
来源:互联网 发布:淘宝网上中长羽绒服 编辑:程序博客网 时间:2024/04/28 12:13
概要
什么是Spring Cloud Netflix Bus?
怎么用 Spring Cloud Netflix Bus?
什么是Spring Cloud Netflix Hystrix?
Spring Cloud Netflix Bus是Spring Cloud的消息机制,当Git Repository 改变时,通过POST请求Config Server的/bus/refresh,Config Server 会从repository获取最新的信息并通过amqp传递给client,如图所示.
Spring Cloud Bus的更新只对三种情况有效
@ConfigurationProperties
@RefreshScope
日志级别
怎么用Spring Cloud Netflix Hystrix?
百说不如一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@RefreshScopepublic 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地址
- Spring Cloud实战(六)-Spring Cloud Netflix Bus
- Spring Cloud实战(六)-Spring Cloud Netflix Bus
- Spring Cloud实战(三)-Spring Cloud Netflix Ribbon
- Spring Cloud实战(四)-Spring Cloud Netflix Feign
- Spring Cloud实战(五)-Spring Cloud Netflix Hystrix
- Spring Cloud实战(七)-Spring Cloud Netflix Zuul
- Spring Cloud实战(五)-Spring Cloud Netflix Hystrix
- Spring Cloud Netflix
- Spring Cloud之Netflix
- Spring Cloud Netflix Eureka
- Spring Cloud Netflix
- Spring Cloud Netflix
- 关于Spring Cloud Netflix
- Spring Cloud Bus 教程
- Spring Cloud Bus
- Spring Cloud Bus
- Spring Cloud Bus
- spring-cloud-netflix编译错误
- 成为月入数万的网红,你也可以!
- java JVM的内存区域(运行时数据区域)
- 如何检查ASTGO是限制并发的体验版呢?
- 关于CPP文件损坏打开显示二进制数字的解决方法
- Bean之间的copy用BeanCopier
- Spring Cloud实战(六)-Spring Cloud Netflix Bus
- Find a way 两路广搜
- jQuery官网下载步骤
- 【VB】解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- java学习——使用Eclipse进行单元测试,报错Can't allocate jvmti memory
- Spring Cloud实战(七)-Spring Cloud Netflix Zuul
- vmvare 装得suse12忘记密码怎么修改?
- 定时取视频帧写入视频文件
- 透视学的应用(八)