人工智能请求的速率限制与排队
学习如何使用速率限制、请求队列和优雅的反压机制,保护人工智能 SaaS 后端免受过载和失控成本的影响。
人工智能请求的速率限制与排队 是 CoddyKit 上的免费 AI SaaS Builder 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI SaaS Builder 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI SaaS Builder 课程共包含 4 节课。
为何要限制人工智能请求
人工智能端点速度慢且成本高。如果没有限制,少数用户(或一个错误)就可能耗尽您的预算或导致服务崩溃。
- 控制成本
- 保护稳定性
- 确保公平
速率限制基础
速率限制规定客户端在某个时间窗口内最多可以发送多少请求,例如每分钟 60 个请求。
令牌桶算法
令牌桶会随着时间推移补充令牌。每个请求消耗一个令牌;令牌桶为空时,请求会被拒绝或等待。
class TokenBucket:
def __init__(self, capacity, refill_per_sec):
self.capacity = capacity
self.tokens = capacity
self.refill = refill_per_sec
def allow(self):
if self.tokens >= 1:
self.tokens -= 1
return True
return False按用户限制与全局限制
应用按用户限制以确保公平,并设置全局上限来保护整个系统和服务提供商配额。
返回 429
当客户端超出限制时,请返回 HTTP 429 请求过多,并附带 Retry-After 标头。
res.status(429)
.set('Retry-After', '30')
.json({ error: 'rate_limited' })为何要将长任务排入队列
人工智能生成可能需要数秒甚至更长时间。保持 HTTP 连接会浪费资源。队列可以让您先接受任务,再异步处理。
任务队列模式
接受请求,将任务加入队列,并立即返回任务 ID。工作进程提取任务并执行人工智能调用。
POST /generate -> { jobId: 'abc123', status: 'queued' }
# worker processes job
GET /jobs/abc123 -> { status: 'done', result: ... }反压
当队列变得过长时,请施加反压:拒绝新的低优先级工作,或提醒用户会有延迟,而不是让任务悄无声息地不断堆积。
工作进程的并发限制
限制同时运行的人工智能调用数量,以遵守服务提供商的限制,并让延迟保持可预测。
# worker config
MAX_CONCURRENT_AI_CALLS = 5使用退避机制重试
人工智能服务提供商偶尔会失败或限制您的请求速率。请使用指数退避重试暂时性错误,但要限制尝试次数,避免陷入循环。
delay = base * (2 ** attempt) # 1s, 2s, 4s, 8s ...可观测性
跟踪队列深度、拒绝率和平均延迟。这些指标会告诉您何时扩展工作进程或收紧限制。
快速检查
检查您对扩展能力的理解。
回顾
您学会了使用速率限制(令牌桶、按用户限制和全局限制)保护人工智能后端,返回 429 响应,将缓慢的工作转移到任务队列,施加反压和并发限制,使用退避机制重试,并监控队列健康状况。
用 AI 导师学习 AI SaaS Builder — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 12
- 课程
- 47
常见问题解答
「人工智能请求的速率限制与排队」课时是免费的吗?
是的 — 「人工智能请求的速率限制与排队」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI SaaS Builder 课程的其余内容,请升级到 CoddyKit PRO。 AI SaaS Builder 课程共包含 4 节课。
「人工智能请求的速率限制与排队」这节课中我会学到什么?
学习如何使用速率限制、请求队列和优雅的反压机制,保护人工智能 SaaS 后端免受过载和失控成本的影响。 你通过在浏览器中直接运行的动手代码来练习 AI SaaS Builder,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI SaaS Builder 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI SaaS Builder 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「人工智能请求的速率限制与排队」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI SaaS Builder 课中编写并运行代码吗?
能。每节 AI SaaS Builder 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 设计 RESTful API
- SaaS 数据库管理
- 用户身份验证与授权
- 人工智能请求的速率限制与排队