Spring Cloud Gateway 4.0限流算法:令牌桶vs漏桶
·
令牌桶算法
令牌桶算法以固定速率生成令牌并存入桶中,请求到达时需消耗令牌。桶满时新令牌被丢弃。突发流量可快速消耗积压令牌,适合允许短期超载的场景。Spring Cloud Gateway通过RedisRateLimiter实现基于Redis的分布式令牌桶限流。
关键参数:
replenishRate:每秒生成的令牌数burstCapacity:桶的最大容量
数学表达: \lim_{t \to \infty} \frac{tokens}{time} = replenishRate
漏桶算法
漏桶算法以恒定速率处理请求,超出速率的请求排队或丢弃。能严格限制请求处理速率,适合需要平滑流量的场景。Spring Cloud Gateway需自定义过滤器实现,如通过Bucket4j集成。
关键参数:
capacity:桶的容量leakRate:每秒漏出的请求数
对比差异:
- 令牌桶允许突发,漏桶强制匀速
- 令牌桶侧重限制平均速率,漏桶侧重控制瞬时速率
更多推荐

所有评论(0)