zoukankan      html  css  js  c++  java
  • 熔断、限流、降级的区别

    熔断、限流、降级的区别

    熔断、限流、降级都是保持系统稳定运行的策略,但针对的场景有所不同

    熔断

    服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用[1]

    上面的解释中有两个很关键的词,一个是暂时,一个是停止

    停止是说,当前服务一旦对下游服务进行熔断,当请求到达时,当前服务不再对下游服务进行调用,而是使用设定好的策略(如构建默认值)直接返回

    暂时是说,熔断后,并不会一直不再调用下游服务,而是以一定的策略(如每分钟调用 10 次,若均返回成功,则增大调用量)试探调用下游服务,
    当下游服务恢复可用时,自动停止熔断。

    如上图,当 ServiceD 不可用时,ServiceB 应对 ServiceD 进行熔断。

    熔断机器

    限流

    限流是指上游服务对本服务请求 QPS 超过阙值时,通过一定的策略(如延迟处理、拒绝处理)对上游服务的请求量进行限制,以保证本服务不被压垮,从而持续提供稳定服务。常见的限流算法有滑动窗口、令牌桶、漏桶等

    如上图,当 ServiceB 对 ServiceD 请求过多时,ServiceD 可以放弃一部分请求,保证自身服务的稳定

    常见限流算法

    降级

    降级是指当自身服务压力增大时,采取一些手段,增强自身服务的处理能力,以保障服务的持续可用。比如,下线非核心服务以保证核心服务的稳定、降低实时性、降低数据一致性

    常见降级策略

    总结

    措施 产生原因 针对服务
    熔断 下游服务不可用 下游服务
    降级 自身服务的处理能力不够 自身服务
    限流 上游服务请求增多 上游服务

    常用框架:hystrix, sentinel


    1. 熔断

  • 相关阅读:
    Luogu P2495 [SDOI2011]消耗战
    40. Combination Sum II
    39. Combination Sum
    22. Generate Parentheses
    51. N-Queens
    Codeforces Round #346 (Div. 2) E. New Reform
    Codeforces Round #346 (Div. 2) D. Bicycle Race
    HDU 5651xiaoxin juju needs help
    VK Cup 2016
    Educational Codeforces Round 10 D. Nested Segments
  • 原文地址:https://www.cnblogs.com/feshfans/p/14509322.html
Copyright © 2011-2022 走看看