最新公告
  • 欢迎您光临IO源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 四大常用限流算法原理详解:计数器固定窗口、计数器滑动窗口、漏桶、令牌桶

    四大常用限流算法原理详解:计数器固定窗口、计数器滑动窗口、漏桶、令牌桶算法 PDF 下载

    本站整理下载:
    链接:https://pan.baidu.com/s/1SOoMytqszzeVODErPSDEtQ 
    提取码:ti0b 
     
     
    相关截图:
     
    主要内容:
    四⼤常⽤限流算法原理详解:计数器固定窗⼝、计
    数器滑动窗⼝、漏桶、令牌桶算法
    限流是指在系统⾯临⾼并发、⼤流量请求的情况
    下,限制新的流量对系统的访问,从⽽保证系统服
    务的安全性。常⽤的限流算法有计数器固定窗⼝算
    法、滑动窗⼝算法、漏⽃算法和令牌桶算法,下⾯
    将对这⼏种算法进⾏分别介绍,并给出具体的实
    现。
    1、计数器固定窗⼝算法
    原理
    将某⼀个时间段当做⼀个窗⼝,在这个窗⼝内存在
    ⼀个计数器记录这个窗⼝接收请求的次数,每接收
    ⼀次请求便让这个计数器的值加⼀,如果计数器的值
    ⼤于请求阈值的时候,即开始限流。当这个时间段
    结束后,会初始化窗⼝的计数器数据,相当于重新
    开了⼀个窗⼝重新监控请求次数。
    代码实现及测试
    package project.limiter;
    import java.util.concurrent.atomic.AtomicInteger;
    public class CounterLimiter {
     private int windowSize; //窗⼝⼤⼩,毫秒为单位
     private int limit;//窗⼝内限流⼤⼩
     private AtomicInteger count;//当前窗⼝的计数器
     private CounterLimiter(){}
     public CounterLimiter(int windowSize,int limit){
     this.limit = limit;
     this.windowSize = windowSize;
     count = new AtomicInteger(0);
     //开启⼀个线程,达到窗⼝结束时清空count
     new Thread(new Runnable() {
     @Override
     public void run() {
     while(true){
     count.set(0);
     try {
     Thread.sleep(windowSize);
     } catch (InterruptedException e) {
     e.printStackTrace();
     }
     }
     }
     }).start();
     }
     //请求到达后先调⽤本⽅法,若返回true,则请求
    通过,否则限流
     public boolean tryAcquire(){
     int newCount = count.addAndGet(1);
     if(newCount > limit){
     return false;
     }else{
     return true;
     }
     }
     //测试
     public static void main(String[] args) throws 
    InterruptedException {
     //每秒20个请求
     CounterLimiter counterLimiter = new 
    CounterLimiter(1000,20);
     int count = 0;
     //模拟50次请求,看多少能通过
     for(int i = 0;i < 50;i ++){
     if(counterLimiter.tryAcquire()){
     count ++;
     }
     }
     System.out.println(“第⼀拨50次请求中通过:” 
    + count + “,限流:” + (50 – count));
     //过⼀秒再请求
     Thread.sleep(1000);
     //模拟50次请求,看多少能通过
     count = 0;
     for(int i = 0;i < 50;i ++){
     if(counterLimiter.tryAcquire()){
     count ++;
     }
     }
     System.out.println(“第⼆拨50次请求中通过:” 
    + count + “,限流:” + (50 – count));
     }
    }
    特点分

     

    *** 次数:10600 已用完,请联系开发者***

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!384324621@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有★币奖励和额外收入!

    IO 源码网 » 四大常用限流算法原理详解:计数器固定窗口、计数器滑动窗口、漏桶、令牌桶

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    IO源码吧
    一个高级程序员模板开发平台

    发表评论

    • 99会员总数(位)
    • 11099资源总数(个)
    • 79本周发布(个)
    • 15 今日发布(个)
    • 446稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情