什么是漏桶算法?
什么是漏桶算法?
发布时间:2025-08-20 08:37:56
什么是漏桶算法?
/**
* 漏桶限流算法
*
* @author Administrator
* @date 2023/10/15 20:15
*/
public class LeakyBucket {
public long timeStamp = System.currentTimeMillis(); // 当前时间
public long capacity; // 桶的容量
public long rate; // 水漏出的速度(每秒系统能处理的请求数)
public long water; // 当前水量(当前累积请求数)
public boolean limit() {
long now = System.currentTimeMillis();
water = Math.max(0, water ‐ ((now ‐timeStamp)/1000) *rate); // 先执行漏水,计算剩余水量
timeStamp = now;
if ((water + 1) < capacity) {
// 尝试加水,并且水还未满
water += 1;
return true;
} else {
// 水满,拒绝加水
return false;
}
}
}