原理
1、流程圖
官方原版流程圖
1、方法標注 @HystrixCommand注解
2、方法執行進入執行隊列、方法執行、【圖中標注 .toObservable()狀態】
3、緩存是否可見【有 返回緩存數據;沒有進入下一步判斷】
4、斷路器是否打開【未打開 直接判斷信號量線程池是否拒絕 ;打開且觸發斷路進去fallback方法】
5、信號量線程池是否拒絕【未拒絕 創建線程池隔離艙執行業務邏輯 ;拒絕 執行fallback方法】
6、業務邏輯執行是否成功【成功 判斷是否超時;未成功 執行fallback方法】
7、判斷是否超時【超時 不返回 未超時返回數據】
8、fallback執行結果【成功 返回數據 ;失敗 返回失敗或者自行實現業務方法】
其中方法執行結果要返回斷路器健康狀態給斷路器【也就是圖中綠色4】
具體信息可見官方詳細:https://github.com/Netflix/Hystrix/wiki/How-it-Works