1. 介绍
为了保证系统不被突发流量击垮,进行容量保障是十分有必要的。从架构的稳定性角度看,在有限资源的情况下,所能提供的单位时间服务能力也是有限的。假如超过承受能力,可能会带来整个服务的停顿,应用的Crash,进而可能将风险传递给服务调用方造成整个系统的服务能力丧失,进而引发雪崩。另外,根据排队理论,具有延迟的服务随着请求量的不断提升,其平均响应时间也会迅速提升,为了保证服务的SLA,有必要控制单位时间的请求量。这就是限流为什么愈发重要的原因。
本文主要讨论内容为: 解决容量保障(雪崩效应)问题的三大方法——熔断、限流和降级相关的概念
Hystrix的基本原理
2. 雪崩效应
分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级.
2.1 定义
雪崩效应:服务提供者 的不可用导致 服务调用者 的不可用,并将不可用 逐渐放大 的过程
下图从上到下看,可以发现随着A不可用,慢慢的B服务还有CD服务都不可用了。
2.2 雪崩效应形成的原因
我把服务雪崩的参与者简化为 服务提供者 和 服务调用者, 并将服务雪崩产生的过程分为以下三个阶段来分析形成的原因: 服务提供者不可用
重试加大流量
服务调用者不可用
2.2.1 服务提供者不可用原因
<