API 网关限流与熔断实践(令牌桶、漏桶、滑动窗口与阈值)概述限流与熔断是保护后端稳定性的关键。本文总结主流算法与阈值设计,并提供网关实现与验证手段。关键实践与参数令牌桶(Token Bucket):速率 `r`(令牌/秒)与突发容量 `b`(桶大小)决定 QPS 与瞬时突发。漏桶(Leaky Bucket):恒定出水速率,平滑突发;适合严格平滑流量场景。滑动窗口(Sliding Window):按窗口统计请求数,常用于分布式限流计数。熔断阈值:基于错误率(如 50x 比例)与平均延迟设定触发条件,含半开探测。实现示例(伪配置)rate_limit: token_bucket: rate: 1000 # 每秒令牌生成 burst: 3000 # 最多瞬时突发 sliding_window: window_ms: 1000 max_requests: 1200 circuit_breaker: error_ratio_threshold: 0.2 latency_ms_threshold: 800 reset_timeout_ms: 30000 验证方法压测观察 QPS、尾延迟与拒绝比例;验证半开探测恢复行为。日志与指标上报:限流命中率、熔断触发次数、降级响应占比。分布式计数一致性校验(滑动窗口在多副本下的精度)。注意事项限流与重试需联动;避免同步重试导致雪崩。区分用户级/接口级与全局级限流;优先保护关键后端。熔断半开探测需渐进放量,防止抖动。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.821829s