Hystrix

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命令併發出其響應
相關文章
相關標籤/搜索