什么是API限流?
API限流(Rate Limiting)是通过限制单位时间内的请求频率,保障系统稳定性与公平性的关键策略。常见场景包括:
- 防止恶意用户刷接口
- 保护后端服务免受过载
- 保证高优先级请求的资源分配
常见限流方法
令牌桶算法(Token Bucket)
- 允许突发流量通过,但限制长期速率
- 📚 深入理解令牌桶原理
漏桶算法(Leaky Bucket)
- 均匀输出流量,削峰填谷
- ⚠️ 适用于需要严格速率控制的场景
滑动时间窗口(Sliding Window)
- 比固定窗口更精确的统计方式
- ⏱️ 支持动态调整时间粒度
实现示例(Node.js)
const rateLimit = require("express-rate-limit");
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15分钟
max: 100 // 最大请求次数
});
app.use("/api", limiter);
📌 查看完整代码示例