分布式系统《弹力设计之熔断、限流、降级》--读书笔记 && 框架选型
目录 熔断设计 限流设计 降级设计 框架选型 熔断设计 熔断器模式是用来防止应用程序不断地尝试执行可能会失败的操作,使得应用程序可以继续执行,而不会浪费 CPU 时间去等待长时间的超时产生。 时序图 (本图来自 Martin Fowler 的 Circuit Breaker) 熔断器的几种状态 闭合(Closed)状态 :熔断器处于闭合状态时,会有一个基于时间的调用失败计数器,如果在这个时间内的失败次数超过了给定的阈值,那么将切换到断开状态。 断开(Open)状态 :在断开状态下,对应用程序的请求会立即返回错误响应,而不调用后端的服务。当切到断开状态后,会开启一个超时时钟,当时间超过了该时间,将切到半开状态。 半开(Half-Open)状态 :在半开状态下,允许应用程序一定数量的请求去调用服务。如果这些请求调用成功,那么熔断器将切换到闭合状态;如果有一定数量的请求调用失败,那么熔断器将切换到断开状态。 状态机 (本图来自 Martin Fowler 的 Circuit Breaker) 限流设计 限流是通过对并发访问进行限速,一旦达到限制的速率,就会触发相应的限流行为。目的是为了:应对突发的流量、保证系统在某个速度下的响应时间及可用性、节约成本等。 限流行为: 拒绝服务。把多出来的请求直接拒绝掉。 服务降级。关闭或是把后端服务做降级处理。 特权请求。把有限的资源分给VIP用户。