本文主要基于 Hystrix 1.5.X 版本
1. 依赖工具
2. 源码拉取
3. 运行示例
RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
您对于源码的疑问每条留言都将得到认真回复甚至不知道如何读源码也可以请教噢
新的源码解析文章实时收到通知每周更新一篇左右
认真的源码交流微信群
1. 依赖工具
- Gradle
- JDK
- IntelliJ IDEA
推荐 Spring Cloud 书籍:
请支持正版下载盗版, 等于主动编写低级 BUG
程序猿 DD Spring Cloud 微服务实战
周立 Spring Cloud 与 Docker 微服务架构实战
两书齐买, 京东包邮
2. 源码拉取
从官方仓库 https://github.com/Netflix/Hystrix.git Fork 出属于自己的仓库为什么要 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 )
来源: http://www.suo.im/sRyhJ