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命令并发出其响应
相关文章
相关标签/搜索