当前位置:   article > 正文

限流算法_限流算法 适合频率

限流算法 适合频率

一、什么是限流:

    限制流量请求的频率(每秒处理多少个请求)。一般来说,当请求流量超过系统的瓶颈,则丢弃掉多余的请求流量,保证系统的可用性。

二、解决的问题:

    高并发情况下,保证系统的可用性,不会被击垮。

三、目前主流的两种限流算法:

    1、漏桶限流算法;

    2、令牌桶限流算法。

四、漏桶限流算法:

        

    不论流量流入的情况如何,流量流出按照一定的频率。如果流入过大的流量,超过桶的大小,则丢弃掉多余的流量。

        优点:保证的流量流入频率,原理简单。

        缺点:无法应对突发的大流量。因为流出的是固定频率,其他流量只是放在桶中,并没有流出。

五、令牌桶限流算法:

        

    令牌桶算法是按照恒定速率往桶中放入令牌,每当一个请求进入的时候需要消耗一个或多个令牌。当令牌数为0的时候,请求会被阻塞或者抛弃。当生产速度高于消费速度,桶满了就不会再增加令牌了。

    优点:保证的流量流入频率,同时可以应对突然的大流量(比如当桶中的令牌比较多的时候,就可以同时给很多请求发出令牌,从而保证突然大流量的处理)。相对漏桶算法更高级。

    缺点:算法相对复杂。

六、总结:

        漏桶保证流量流出的频率。后续服务只需要支持最大请求量:漏桶流出频率。

        令牌桶只是保证令牌的产生频率。后续服务只需要支持最大请求量:桶最大值的流出频率。

            (1)当令牌消费速度远远高于产生速度时(桶中令牌基本处于空的状态),漏桶算法效果基本一样,保证流量流出的频率;

            (2)当令牌消费速度小于产生速度时(桶中令牌会变多直至填满),这时就可以应对突发的大流量请求,但是后续的服务要能支撑起桶大小请求量的极端请求情况。


七、使用场景:

         漏桶算法、令牌桶算法,其实无所谓哪个更好,要看适用的场景。

        当需要处理突然的大流量的时候,令牌桶算法更适用;

        当只需要保证系统的单位时间流量、或者更注重系统的稳定性的时候,漏桶算法更适用。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/274898
推荐阅读
相关标签
  

闽ICP备14008679号