服务降级nginx
概念:服务降级,当服务器压力剧增的状况下,根据当前业务状况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。算法
服务熔断
若是某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不在继续调用目标服务,直接返回,快速释放资源。若是目标服务状况好转则恢复调用。服务器
熔断设计
三个模块:熔断请求判断算法、熔断恢复机制、熔断报警异步
(1)熔断请求判断机制算法:使用无锁循环队列计数,每一个熔断器默认维护10个bucket,每1秒一个bucket,每一个blucket记录请求的成功、失败、超时、拒绝的状态,默认错误超过50%且10秒内超过20个请求进行中断拦截。设计
(2)熔断恢复:对于被熔断的请求,每隔5s容许部分请求经过,若请求都是健康的(RT<250ms)则对请求健康恢复。日志
(3)熔断报警:对于熔断的请求打日志,异常请求超过某些设定则报警接口
服务限流
限流模式主要是提早对各个类型的请求设置最高的QPS阈值,若高于设置的阈值则对该请求直接返回,再也不调用后续资源。
队列