zoukankan      html  css  js  c++  java
  • 令牌桶 VS 漏桶

    漏桶算法和令牌桶算法的区别, 说得清楚吗? 其实两个算法并不难理解,当然有区别,但是感觉区别没那么大, 看网上的一下说明,感觉是误导他人。

    引用网上说明:

    漏桶算法和令牌桶算法的区别

    **漏桶算法的出水速度是恒定的,**那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。漏桶算法通常可以用于限制访问外部接口的流量,保护其他人系统,比如我们请求银行接口,通常要限制并发数。
     
    令牌桶算法生成令牌的速度是恒定的,而请求去拿令牌是没有速度限制的。这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,可以处理瞬时流量,而且拿令牌的过程并不是消耗很大的事情。令牌桶算法通常可以用于限制被访问的流量,保护自身系统。
     
    其实两者还是非常的相似的, 尽管内部原理差不多,但是其实 还是差不多, 上面的表述有误: 
    那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出) —— 如果漏桶已经是空的, 可能根本不会溢出,自然不会大部分被丢弃,
     面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,可以处理瞬时流量 —— 同样,如果此时令牌已经所剩无几,令牌桶算法也无法短时间拿到大量令牌, 它同样需要等待!
     
    本质上来讲, 漏桶算法 是流出速度固定,从而在桶未空的时候,容量稳步减少, 可用空间增加(也就是可以获取的、可流入的量 增加);而令牌桶算法是流入速度固定,也是从而在桶未满的时候,容量稳步增加(也就使得可以获取的、可流出的量 增加);
     
    所以本质上来讲, 都是使得一个操作的量增加,使得另外的相反的操作得以进行。只要桶的 现有容量足够大, 它就可以获得足够的 突发!! 所以,真正意义来说, 没有区别。本质都是一个 匀速的操作,限制反向操作的平均速度。
     
     参考
    https://blog.csdn.net/a718515028/article/details/108363499


    版权声明
    本文原创发表于 博客园,作者为 阿K .     本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
    欢迎关注本人微信公众号:觉醒的码农,或者扫码进群:

  • 相关阅读:
    多个div并排显示的居中问题——来自腾讯的一道面试题
    c++ 类的对象与指针
    c++ 联合体
    用户输入一个数字,找到所有能够除尽它的数的总个数
    javascript
    今天的排版
    论学习php的方法
    我想对所有新程序员说的一些话
    注册表单
    安卓机器人
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/14491480.html
Copyright © 2011-2022 走看看