全国服务热线:400-6136-679

位置:天津达内IT培训学校 > 学校动态 > 漏桶限流的基本原理

漏桶限流的基本原理

来源:天津达内IT培训学校时间:2022/10/11 13:58:18

  漏桶限流的基本原理

  1)水通过进水口(对应客户端请求)以任意速率流入漏桶。 2)漏桶的容量是固定的,出水(放行)速率也是固定的。 3)漏桶容量是不变的,如果处理速度太慢,桶内水量会超出桶的容量,后面流入的水就会溢出,表示请求拒绝。

  private static long lastOutTime = System.currentTimeMillis();

  //流出速率每秒2个

  private static int rate = 2;

  //剩余水的量

  private static long water = 0;

  /**

  * false:没有被限制

  * true:被限流

  * @param taskId

  * @param turns

  * @return

  */

  public synchronized static boolean tryAcquire(long taskId, int turns){

  long now = System.currentTimeMillis();

  long pastTime = now - lastOutTime;

  long outWater = pastTime * rate/ 1000;

  water = water -outWater;

  log.info("water {} pastTime {} outWater {}",water ,pastTime, outWater);

  if (water < 0){

  water = 0;

  }

  if (water <= 1){

  lastOutTime = now;

  water ++ ;

  return false;

  }else {

  return true;

  }

  }

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/2346/news/568805/违者必究! 以上就是天津达内IT培训学校 小编为您整理 漏桶限流的基本原理的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6136-679