隨着服務化的大規模演化,每個應用系統對這些依賴的穩定性與否對系統的影響非常大。而依賴有很多不可控問題:網絡連接緩慢,資源繁忙,服務暫時不可用等。特別是高併發的依賴失敗時如果沒有隔離措施,當前應用服務就有被拖垮的風險。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的基本原理及源碼實現
持續更新中