随着服务化的大规模演化,每个应用系统对这些依赖的稳定性与否对系统的影响非常大。而依赖有很多不可控问题:网络连接缓慢,资源繁忙,服务暂时不可用等。特别是高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险。Netflix 公司开发并成功使用Hystrix,它是社区中非常活跃的限流降级神器。
Netflix 应用系统规模
- The Netflix API processes 10+ billion HystrixCommand executions per day using thread isolation.
- Each API instance has 40+ thread-pools with 5-20 threads in each (most are set to 10).
1. Spring Cloud Hystrix 源码系列:工作原理
主要介绍Hystrix的由来、功能介绍、用法、工作原理等
2. Spring Cloud Hystrix 源码系列:HystrixCommandAspect 入口解析
主要是介绍spring对Hystrix的集成以及关键接入点HystrixCommandAspect源码
3. Spring Cloud Hystrix 源码系列:隔离策略和请求缓存
讲Hystrix 使用了隔离策略:Thread Pool、Semaphore以及请求缓存(ReplaySubject)
4. Spring Cloud Hystrix 源码系列:HystrixRequestContext
讲Hystrix跨父子线程传递数据的实现原理
5. Spring Cloud Hystrix 源码系列:Metrics 收集
讲Hystrix 如何收集各类事件进行汇总处理
6. Spring Cloud Hystrix 源码系列:熔断器
讲circuit的基本原理以及相关源码实现
7. Feign Hystrix Ribbon配置详解及原理
介绍Feign、Hystrix、Ribbon的配置基本原理及源码实现
8. Spring Cloud Hystrix:番外篇Sentinel
对比Sentinel 和 Netflix Hystrix的异同点
番外篇:Spring Cloud Feign和Ribbon源码系列汇总篇
主要是讲Feign 和Ribbon的基本原理及源码实现
持续更新中