http://www.javashuo.com/article/p-ucxmiyvt-gc.html設計模式
Hystrix是一個庫,併發
- 它提供了服務與服務之間的容錯功能,
- 主要體如今延遲容錯和容錯,
- 從而作到控制分佈式系統中的聯動故障。
- Hystrix經過隔離服務的訪問點,
- 阻止聯動故障,
- 並提供故障的解決方案,
- 從而提升了這個分佈式系統的彈性。
- 在高併發的狀況下,
- 單個服務的延遲,
- 可能致使全部的請求都處於延遲狀態,
- 可能在幾秒鐘就使服務處於負載飽和的狀態。
- 這就是「雪崩」
- 調用失敗
- 服務降級
- 快速失敗
- 屢次失敗
- 不會快速重連
- 緣由是(我的理解):
- 自己服務管理有心跳檢測,可以鏈接過來默認是好用的
- 若是失敗,直接重連極可能仍是失敗
- 快速失敗,發起端能夠再次發起重連,Hystrix 這裏不必作
- 當對特定的服務的調用的不可用達到一個閥值
- (Hystric 是5秒20次) 斷路器將會被打開。
經過使用Hystrix命令對象的如下四種方法之一,(命令設計模式)分佈式
- 能夠執行該命令有四種方法(前兩種方法僅適用於簡單的HystrixCommand對象,並不適用於HystrixObservableCommand):
- execute()–阻塞,,而後返回從依賴關係接收到的單個響應(或者在發生錯誤時拋出異常)
- queue()–返回一個能夠從依賴關係得到單個響應的future 對象
- observe()–訂閱Observable表明依賴關係的響應,並返回一個Observable,該Observable會複製該來源Observable
- toObservable() --返回一個Observable,當您訂閱它時,將執行Hystrix命令併發出其響應