熔断、限流、降级都是保持系统稳定运行的策略,但针对的场景有所不同
服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用[1]
上面的解释中有两个很关键的词,一个是暂时,一个是停止。
停止是说,当前服务一旦对下游服务进行熔断,当请求到达时,当前服务不再对下游服务进行调用,而是使用设定好的策略(如构建默认值)直接返回
暂时是说,熔断后,并不会一直不再调用下游服务,而是以一定的策略(如每分钟调用 10 次,若均返回成功,则增大调用量)试探调用下游服务,
当下游服务恢复可用时,自动停止熔断。
熔段解决如下几个问题:
限流是指上游服务对本服务请求 QPS 超过阙值时,通过一定的策略(如延迟处理、拒绝处理)对上游服务的请求量进行限制,以保证本服务不被压垮,从而持续提供稳定服务。
1.2 常见的限流算法
常见的限流算法有:计数器、漏桶、令牌桶、滑动窗口。
计数器算法
降级是指当自身服务压力增大时,采取一些手段,增强自身服务的处理能力,以保障服务的持续可用。比如,下线非核心服务以保证核心服务的稳定、降低实时性、降低数据一致性
措施 | 产生原因 | 针对服务 |
---|---|---|
熔断 | 下游服务不可用 | 下游服务 |
降级 | 自身服务的处理能力不够 | 自身服务 |
限流 | 上游服务请求增多 | 上游服务 |
本文链接:https://blog.nnwk.net/article/92
有问题请留言。版权所有,转载请在显眼位置处保留文章出处,并留下原文连接
Leave your question and I'll get back to you as soon as I see it. All rights reserved. Please keep the source and links
友情链接:
子卿全栈
全部评论