您的位置:首页 > 运维架构 > 网站架构

熔断器 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. 认真的源码交流微信群。

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 )

4. 彩蛋

为了显得本文的诚意( 真的不是水更 ),友情提示如下:

Hystrix 基于 RxJava 实现,所以笔者推荐阅读如下文章 :

《给 Android 开发者的 RxJava 详解》

《大话 RxJava》系列

《ReactiveX/RxJava文档中文版》

可能一开始理解会比较困难,保持耐心,你即将打开一个新的世界。对了,变换(
#lift(Operator)
) 会是一个难点,我相信你可以理解。

胖友,分享一波朋友圈可好!

对了,这是一个系列文,所以,千万不要错过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息