Hystrix 原理

http://www.javashuo.com/article/p-raknoeuv-q.html網絡

Hystrix遵循的設計原則:ui

  • 防止任何單獨的依賴耗盡資源(線程)
  • 過載當即切斷並快速失敗,防止排隊
  • 儘量提供回退以保護用戶免受故障
  • 使用隔離技術(例如隔板,泳道和斷路器模式)來限制任何一個依賴的影響
  • 經過近實時的指標,監控和告警,確保故障被及時發現
  • 經過動態修改配置屬性,確保故障及時恢復
  • 防止整個依賴客戶端執行失敗,而不單單是網絡通訊

Hystrix如何實現這些設計目標?.net

  • 使用命令模式將全部對外部服務(或依賴關係)的調用包裝在HystrixCommand或HystrixObservableCommand對象中,並將該對象放在單獨的線程中執行;
  • 每一個依賴都維護着一個線程池(或信號量),線程池被耗盡則拒絕請求(而不是讓請求排隊)。
  • 記錄請求成功,失敗,超時和線程拒絕。
  • 服務錯誤百分比超過了閾值,熔斷器開關自動打開,一段時間內中止對該服務的全部請求。
  • 請求失敗,被拒絕,超時或熔斷時執行降級邏輯。
  • 近實時地監控指標和配置的修改。
相關文章
相關標籤/搜索