Hystrix 原理

http://www.javashuo.com/article/p-raknoeuv-q.html网络

Hystrix遵循的设计原则:ui

  • 防止任何单独的依赖耗尽资源(线程)
  • 过载当即切断并快速失败,防止排队
  • 尽量提供回退以保护用户免受故障
  • 使用隔离技术(例如隔板,泳道和断路器模式)来限制任何一个依赖的影响
  • 经过近实时的指标,监控和告警,确保故障被及时发现
  • 经过动态修改配置属性,确保故障及时恢复
  • 防止整个依赖客户端执行失败,而不单单是网络通讯

Hystrix如何实现这些设计目标?.net

  • 使用命令模式将全部对外部服务(或依赖关系)的调用包装在HystrixCommand或HystrixObservableCommand对象中,并将该对象放在单独的线程中执行;
  • 每一个依赖都维护着一个线程池(或信号量),线程池被耗尽则拒绝请求(而不是让请求排队)。
  • 记录请求成功,失败,超时和线程拒绝。
  • 服务错误百分比超过了阈值,熔断器开关自动打开,一段时间内中止对该服务的全部请求。
  • 请求失败,被拒绝,超时或熔断时执行降级逻辑。
  • 近实时地监控指标和配置的修改。
相关文章
相关标签/搜索