熔断器 Hystrix 源码解析 —— 调试环境搭建
2017-11-11 20:33
666 查看
摘要: 原创出处 http://www.iocoder.cn/Hystrix/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!
本文主要基于 Hystrix 1.5.X 版本
1. 依赖工具
2. 源码拉取
3. 运行示例
4. 彩蛋
������关注微信公众号:【芋道源码】有福利:
1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
4. 新的源码解析文章实时收到通知。每周更新一篇左右。
5. 认真的源码交流微信群。
JDK
IntelliJ IDEA
推荐 Spring Cloud 书籍:
请支持正版。下载盗版,等于主动编写低级 BUG 。
程序猿DD —— 《Spring Cloud微服务实战》
周立 —— 《Spring Cloud与Docker微服务架构实战》
两书齐买,京东包邮。
使用
本文基于
可能有部分同学对 Hystrix 的特性了解的不是很清晰,笔者推荐如下文章:
《【翻译】Hystrix 文档 - 实现原理》
《hystrix 在 spring mvc 的使用》
另外,笔者也整理了下 Hystrix 的特性如下( 可能不是很严谨,主要辅助理解 ) :
断路器机制
计算线路健康度
Fallback ( 失败回退 )
资源隔离
方式
线程池
信号量
依赖隔离
执行模型
同步执行
异步执行
Reactive模式执行
observe
toObservable
运维平台
基础 Dashboard
整合 Turbine
缓存
请求合并( HystrixCollapser )
Hystrix 基于 RxJava 实现,所以笔者推荐阅读如下文章 :
《给 Android 开发者的 RxJava 详解》
《大话 RxJava》系列
《ReactiveX/RxJava文档中文版》
可能一开始理解会比较困难,保持耐心,你即将打开一个新的世界。对了,变换(
胖友,分享一波朋友圈可好!
对了,这是一个系列文,所以,千万不要错过。
本文主要基于 Hystrix 1.5.X 版本
1. 依赖工具
2. 源码拉取
3. 运行示例
4. 彩蛋
������关注微信公众号:【芋道源码】有福利:
1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
4. 新的源码解析文章实时收到通知。每周更新一篇左右。
5. 认真的源码交流微信群。
1. 依赖工具
GradleJDK
IntelliJ IDEA
推荐 Spring Cloud 书籍:
请支持正版。下载盗版,等于主动编写低级 BUG 。
程序猿DD —— 《Spring Cloud微服务实战》
周立 —— 《Spring Cloud与Docker微服务架构实战》
两书齐买,京东包邮。
2. 源码拉取
从官方仓库 https://github.com/Netflix/Hystrix.gitFork出属于自己的仓库。为什么要
Fork?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。��
使用
IntelliJ IDEA从
Fork出来的仓库拉取代码。在项目路径下,在命令行执行
./gradlew命令,
Gradle会下载依赖包,可能会花费一些时间,耐心等待下。其间可能会出现因为网络原因( 我相信你懂的 ),可能会出现失败的情况,淡定,重新执行上述命令直到成功。此刻,你就是一个
while(true)的小强。
本文基于
master分支。
3. 运行示例
在hystrix-examples子项目下,提供了大量的示例,如下图:
basic包 :针对 Hystrix 每个特性提供小的单元测试示例。你可以从 CommandHelloWorld 开始尝试。
demo包 :结合实际场景的实战小例子。运行入口为 HystrixCommandDemo 或者 HystrixCommandAsyncDemo 。恩,聪慧如你,从名字能看出它们的区别点。
可能有部分同学对 Hystrix 的特性了解的不是很清晰,笔者推荐如下文章:
《【翻译】Hystrix 文档 - 实现原理》
《hystrix 在 spring mvc 的使用》
另外,笔者也整理了下 Hystrix 的特性如下( 可能不是很严谨,主要辅助理解 ) :
断路器机制
计算线路健康度
Fallback ( 失败回退 )
资源隔离
方式
线程池
信号量
依赖隔离
执行模型
同步执行
异步执行
Reactive模式执行
observe
toObservable
运维平台
基础 Dashboard
整合 Turbine
缓存
请求合并( HystrixCollapser )
4. 彩蛋
为了显得本文的诚意( 真的不是水更 ),友情提示如下:Hystrix 基于 RxJava 实现,所以笔者推荐阅读如下文章 :
《给 Android 开发者的 RxJava 详解》
《大话 RxJava》系列
《ReactiveX/RxJava文档中文版》
可能一开始理解会比较困难,保持耐心,你即将打开一个新的世界。对了,变换(
#lift(Operator)) 会是一个难点,我相信你可以理解。
胖友,分享一波朋友圈可好!
对了,这是一个系列文,所以,千万不要错过。
相关文章推荐
- 熔断器 Hystrix 源码解析 —— 调试环境搭建
- Hystrix源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 分布式事务 TCC-Transaction 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 注册中心 Eureka 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建
- 网关 Spring-Cloud-Gateway 源码解析 —— 调试环境搭建