限流算法

固定时间窗口(也叫计数器算法)

计数器算法是通过设置单位时间内访问次数,每被请求一次计数减一,计数为零的时候拒绝访问。

img

计数器算法的缺点是因为请求分布不均匀,最坏的情况下请求数是限流的两倍

img

滑动时间窗口算法

滑动时间窗口算法是计数器算法的改善,将固定时间分成更细的时间段,随着时间增加向后滑动,但是本质上依然解决不了请求分布的问题。

滑动日志算法

滑动日志是记录每次请求的时间,可以查到任意时间段真实的请求数,从而解决请求分布的问题。

漏桶限流算法

漏桶限流是对单位时间的请求做了强行限制,比如每500ms只能处理一次请求,多出来的请求反馈限流。

问题就是限制了系统的并发性。

令牌桶限流算法

令牌桶是为了解决并发性问题, 单位时间生成一个令牌放到令牌桶中,令牌桶满的话就跳过。

请求从令牌桶中获取令牌,然后执行,如果没有令牌就返回限流。

posted @ 2024-07-30 17:53  侯佳奇  阅读(30)  评论(0)    收藏  举报