1. 依赖工具

  • Gradle

  • JDK

  • IntelliJ IDEA


推荐 Spring Cloud 书籍

  • 请支持正版。下载盗版,等于主动编写低级 BUG 。

  • 程序猿DD —— 《Spring Cloud微服务实战》

  • 周立 —— 《Spring Cloud与Docker微服务架构实战》

  • 两书齐买,京东包邮。

2. 源码拉取

从官方仓库 https://github.com/Netflix/Hystrix.git Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。

使用 IntelliJIDEAFork 出来的仓库拉取代码。在项目路径下,在命令行执行 ./gradlew 命令, Gradle会下载依赖包,可能会花费一些时间,耐心等待下。其间可能会出现因为网络原因( 我相信你懂的 ),可能会出现失败的情况,淡定,重新执行上述命令直到成功。此刻,你就是一个 while(true) 的小强。

本文基于 master 分支。

3. 运行示例

hystrix-examples 子项目下,提供了大量的示例,如下图:

  • basic 包 :针对 Hystrix 每个特性提供小的单元测试示例。你可以从 CommandHelloWorld 开始尝试。

  • demo 包 :结合实际场景的实战小例子。运行入口为 HystrixCommandDemo 或者 HystrixCommandAsyncDemo 。恩,聪慧如你,从名字能看出它们的区别点。

可能有部分同学对 Hystrix 的特性了解的不是很清晰,笔者推荐如下文章:

  • 《【翻译】Hystrix 文档 - 实现原理》

  • 《hystrix 在 spring mvc 的使用》

另外,笔者也整理了下 Hystrix 的特性如下( 可能不是很严谨,主要辅助理解 ) :

  • 断路器机制

    • 计算线路健康度

  • Fallback ( 失败回退 )

  • 资源隔离

    • 线程池

    • 信号量

    • 方式

    • 依赖隔离

  • 执行模型

    • observe

    • toObservable

    • 同步执行

    • 异步执行

    • Reactive模式执行

  • 运维平台

    • 基础 Dashboard

    • 整合 Turbine

  • 缓存

  • 请求合并( HystrixCollapser )

4. 彩蛋

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

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

  • 《给 Android 开发者的 RxJava 详解》

  • 《大话 RxJava》系列

  • 《ReactiveX/RxJava文档中文版》

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


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

对了,这是一个系列文,所以,千万不要错过。


©著作权归作者所有:来自51CTO博客作者mb5ff80520dfa04的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. GitHub的注册,代码仓库的创建,用小乌龟上传代码(个人认为比较适合新
  2. GitHub 告别中文仓库刷榜/霸榜
  3. 重磅!Github 私有仓库免费开放
  4. 关于php公历农历的互相转换,你可能会需要!
  5. DockerHub访问慢怎么破?自建个企业级镜像仓库试试!
  6. 10分钟搭建自己的Git仓库
  7. 2.docker容器管理、仓库管理、数据管理、数据卷备份恢复
  8. 从0开始搭建数据仓库(2):产品经理如何“玩转”Hive SQL
  9. Python超越Java成为最受欢迎的教学语言;9月,Adblock Plus可能会退

随机推荐

  1. Java 中的锁如何使用?有什么注意事项?
  2. 并行是什么意思?与并发的区别是什么?
  3. Executors如何创建线程池?
  4. 什么是线程?什么是进程?为什么要有线程?有什
  5. Java 中锁之间的对比
  6. Java 中线程池包含哪些状态?
  7. 首申百度联盟、Google Adsense,均败
  8. synchronized 锁的升级原理是什么?
  9. 博客网站显示框相对浏览器固定位置显示
  10. 如何创建、启动 Java 线程?