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命令并发出其响应