什么是API限流?

API限流(Rate Limiting)是通过限制单位时间内的请求频率,保障系统稳定性与公平性的关键策略。常见场景包括:

  • 防止恶意用户刷接口
  • 保护后端服务免受过载
  • 保证高优先级请求的资源分配
流量控制

常见限流方法

  1. 令牌桶算法(Token Bucket)

  2. 漏桶算法(Leaky Bucket)

    • 均匀输出流量,削峰填谷
    • ⚠️ 适用于需要严格速率控制的场景
  3. 滑动时间窗口(Sliding Window)

    • 比固定窗口更精确的统计方式
    • ⏱️ 支持动态调整时间粒度
令牌桶

实现示例(Node.js)

const rateLimit = require("express-rate-limit");

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15分钟
  max: 100 // 最大请求次数
});

app.use("/api", limiter);

📌 查看完整代码示例

扩展阅读

漏桶算法