分布式系统面临的问题
复杂的分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时刻将不可避免的失效。
服务雪崩
在多个服务服务之间调用的时候,假设服务a调用服务b,服务b调用服务c,服务c有调用其他服务…,这就是所谓的链式调用,如果在链路上的某个微服务的调用响应时间过长或者不可用,对微服务a的调用就会占用越来越多的的系统资源,进而引起系统崩溃,这就是所谓的“服务雪崩”
对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒内饱和,比失败更糟的是这些应用程序还可能导致服务之间的延迟增加、备份队列、线程和其他系统资源紧张,导致整个系统发生更多的级联故障,这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。
我们需要 弃车保帅
什么是 Hystrix?
官方文档
Hystrix 是一个用于处理分布式系统的延迟和容错开源库,在分布式系统里面,不可避免的会调用失败,比如超时、异常等,Hystrix 能够保证在一个依赖出问题的情况下,不会导致整体的服务失败,避免级联故障,以提高分布式系统的弹性。
提供的功能有:
服务通断、服务降级、服务限流、实时流量监控。