限流方案干货

目的

在系统能够提供的最大允许范围内尽可能提供服务,拒绝掉系统承载能力之外的请求以保证服务稳定性。

衡量

压测:单机 线上流量 全链路

监控:峰值估算

算法:

计数器

滑动窗口

令牌桶

漏洞

方案:

单机

集群

特性

开源:

RateLimiter

Hytrix

Setinel

Dagor

对比:

  • 基于计数器的限流算法与基于生产者消费者模型的限流算法

    • 计数器限流比较简单粗暴,但是没有处理突发流量的能力

    • 生产者消费者模型的限流器可以对流量整形

  • 漏桶算法与令牌桶算法

    • 漏桶算法中流量会被强制整形,无论请求速度怎么波动,服务接收到的请求速度都是稳定的。在请求堆积的情况下,请求会被延时处理。

    • 令牌桶算法中服务接收到的请求波形与实际请求的波形是一致的,另外令牌桶可以作为一个单独服务来对集群进行限制

ref

https://toutiao.io/posts/cmmsii/preview

https://mp.weixin.qq.com/s/t9M56GGwDGtoj-yufSw9Tg

原文地址:https://www.cnblogs.com/huilei/p/12700824.html