限流与配额
每个应用(按 appId)独立计数。
当前档位
| 档位 | 每分钟 | 每天 |
|---|---|---|
| Free(默认) | 60 | 1,000 |
| Pro | 600 | 100,000 |
| Enterprise | 6,000 | 1,000,000 |
Phase 5+ 上线 Pro / Enterprise 计费。Phase 1 全部 Free。
响应头
每次成功响应都带 X-RateLimit-* 头:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 47
X-RateLimit-DayLimit: 1000
X-RateLimit-DayRemaining: 994
超限响应
HTTP 429:
{
"status": 401,
"code": "QUOTA_EXCEEDED",
"message": "API Key 已超出本工作区的请求配额",
"path": "/openapi/v1/resource/project/list",
"timestamp": "2026-08-07T10:34:21.456Z"
}
同时带 Retry-After: <seconds> 头(分钟桶或日桶,超哪个给哪个)。
失败模式
- Redis 不可用 → 失败开放(fail open),请求继续通过;不阻塞服务
- Redis 慢查询 → 同上,记录日志但不阻塞
配额计算
每 (appId, minute) + (appId, day) 独立计数。X-Client-ID 缺失或无效时不计数(请求被 401 拦截在 guard 之前)。