限流,熔断,降级分析

写在前面

本文一起看下限流,熔断,降级的概念。

1:限流

限制单位时间内的请求数,超过的则拒绝或其他。常用的算法有滑动时间窗口,漏桶算法,令牌桶算法。

2:熔断

在分布式的场景中,一个请求可能涉及到多个微服务间的调用,当某个下游微服务出现问题时,可能会导致其调用服务不可用,这个影响不断被方法,最终可能导致整个微服务集群不可用,如下图:
限流,熔断,降级分析_第1张图片
服务D不可用,可能会很快耗尽服务B的线程资源导致服务B也不可用,接着服务A也不可用,为了处理这种情况,我们就需要在服务D不可用时,服务B停止向服务D发起请求,而是直接返回错误或是其他(其实就是执行降级逻辑),整个停止访问不可用服务的动作就叫做熔断,当然,在服务恢复后还要能够重新访问,这也是熔断需要考虑的问题。

3:降级

降级,即降低服务等级,并不是不服务了,而是服务的等级降低了,比如你点外卖,如果点外卖的人少,外卖小哥二十分钟就给你送过来了,如果点外卖的人很多,外卖小哥四十分钟才给你送过来,结果也给你送过来了,只不过慢了点(降级了),那么降低服务质量的手段都有哪些呢,包括但不限于如下:

1:服务异常或超时,返回错误给客户端
2:耗时的同步操作,转换为异步
3:监控到流量激增,系统压力增大,及时关闭某些非核心功能,即丢车报帅。
4:正常给客户端返回结果,但质量降低,如返回的图片从高清图片,返回非高清图片
...等等其他

其中的1服务异常或超时,返回错误给客户端是针对单次请求的处理,当这种请求到达一定量时,后续的一段时间内的请求直接走降级逻辑,这个操作我们又可以叫做是熔断,所以从这角度来看熔断是一种特殊的降级,也可以说是降级是包含熔断的。所以,熔断是“多次服务调用异常”累积的结果。

写在前面

参考文章列表

服务降级与服务熔断区别 。
10张图带你彻底搞懂限流、熔断、服务降级 。

你可能感兴趣的:(杂,限流,熔断,降级)