Hystrix源码解析 —— 调试环境搭建
来源:互联网 发布:linux系统入门学习 编辑:程序博客网 时间:2024/06/05 16:53
摘要: 原创出处 http://www.iocoder.cn/Hystrix/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!
本文主要基于 Hystrix 1.5.X 版本
- 1. 依赖工具
- 2. 源码拉取
- 3. 运行示例
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)
) 会是一个难点,我相信你可以理解。
胖友,分享一波朋友圈可好!
对了,这是一个系列文,所以,千万不要错过。
PREVIOUS:
Hystrix 源码解析 —— 执行命令方式
Eureka 源码解析 —— StringCache
- 依赖工具
- 源码拉取
- 运行示例
- 彩蛋
- 熔断器 Hystrix 源码解析 —— 调试环境搭建
- Hystrix源码解析 —— 调试环境搭建
- Eureka 源码解析 —— 调试环境搭建
- Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker
- 熔断器 Hystrix 源码解析 —— 执行命令方式
- 熔断器 Hystrix 源码解析 —— 执行结果缓存
- Hystrix 源码解析 —— 命令合并执行
- Hystrix 源码解析 —— 执行命令方式
- Hystrix 源码解析 —— 执行结果缓存
- 《spring源码深度解析》读书笔记之——环境搭建
- Zookeeper源码解析——本地开发环境搭建
- hadoop源码调试环境搭建
- RocketMQ源码调试环境搭建
- 搭建elasticSearch源码调试环境
- Spring源码解析-环境搭建
- 熔断器 Hystrix 源码解析 —— 命令执行(一)之正常执行逻辑
- 熔断器 Hystrix 源码解析 —— 命令执行(二)之执行隔离策略
- Hystrix 源码解析 —— 命令执行(一)之正常执行逻辑
- ffplay中avpacket和avframe的使用流程
- 表格操作
- 为什么指定了SDRAM,程序却烧写到了Nand flash?
- 第15节项目1-字符转换以及ASCLL码应用
- Git for Windows安装和基本设置
- Hystrix源码解析 —— 调试环境搭建
- json学习
- ASP get请求,post请求
- MVP注册
- java日志总结
- 安装交叉编译工具arm-linux-gcc命令未找到的问题
- Androidstudio支持中文命名
- 从并发处理谈PHP进程间通信----并发锁表操作
- Redis的常见知识点