降级
放弃部分非核心功能或者服务,保证整体的可用性的方法,是一种有损的系统容
错方式。
系统短暂不可用的原因大概包含以下两种情况:
1.依赖的下游服务或者资源不可用
2.流量超出下游服务或者系统的承载量,拒绝请求
导致服务不可用背景
1.png例如:上图。服务A强依赖服务B,服务B依赖服务C、服务D、服务E。
1)、当流量暴增时,对服务B、C、D做了扩容,E因无法承载突增流量,导致请求响应缓慢。B中的请求被阻塞,等待C返回结果,B服务中被占用的线程资源就不能释放。
2)、一定时间内,服务B线程资源被占满,阻塞请求,A调用B的响应时间就会变长,服务相继被拖垮,导致整个服务不可用。
问题:分布式环境下,最怕的不是服务的宕机,而是影响慢,拖垮整个服务不可用
解决:检测到某一个服务的响应出现异常时,切断与它的调用关系。暂时让服务快速返回失败,释放这次请求持有的资源,保证服务的整体可用。
降级类型
1、熔断。状态机
2.png
2、开关降级。策略参数可放配置中心,例如开关
3、限流降级。策略参数可放配置中心,例如阈值
网友评论