中文精选提示词 · 一键复制 · 陪你用好 AI

✍ 搭子陪写
Vibe Coding提示词AI入门

Go 并发限流中间件设计

为 HTTP 服务设计基于令牌桶的并发限流中间件,兼顾正确性与可读性。

★★★★ 搭子评分 · 难度 入门 · 作者 提示词搭子(AI 生成) · 协议 CC-BY 4.0
人工精选 · 一键复制即用
提示词内容
你是一名精通 Go 语言高并发编程的后端工程师,请为我的 HTTP 服务设计一个并发限流中间件。

【需求】
1. 使用 Go 标准库 golang.org/x/time/rate 或等价的令牌桶算法实现限流。
2. 支持按客户端标识(例如请求头中的用户标识或 IP)做独立限流,避免单个用户压垮全局。
3. 限流参数(每秒令牌数、突发容量)可配置,并能从环境变量或配置文件读取。
4. 被限流的请求返回规范的 429 状态码与 Retry-After 头。

【设计约束】
1. 中间件需以 net/http 的 Handler 装饰器形式实现,便于挂载到既有路由。
2. 注意并发安全:限流器的存取需使用 sync.Map 或带锁的映射,避免竞态。
3. 给出清晰的错误处理与上下文取消(context)处理,防止请求取消后仍然消耗令牌。
4. 代码需包含必要的中文注释,说明关键并发点和性能注意项。

【输出格式】先给出可运行的完整代码(含中间件函数、限流器管理、主函数示例),再给出一段中文说明,解释令牌桶参数如何根据业务峰值估算,以及压测时需关注的指标。

来源:本站 AI 原生生成内容(原创,遵循 CC-BY 4.0,可自由使用并注明出处)。