首页/开发/系统分析与架构设计速查/幂等键(Idempotency Key)

幂等键(Idempotency Key)

客户端为每次业务操作生成唯一键,服务端首次执行后缓存结果,重复请求返回同一结果;适用于支付、下单等不可重复的写操作。

请求示意

请求示意
POST /v1/payments
Idempotency-Key: 7f3c9a52-...-9e21

重复提交时返回首次处理结果与同一业务单号。
键的生成客户端生成(UUID v4/v7 等),同一业务操作复用同一键
服务端处理唯一约束 + 结果缓存;注意缓存有效期与状态机不完整时的处理
幂等键必须与业务语义绑定:同一键用于不同参数时应返回冲突而不是执行新操作。

易错点

  • 客户端重试时重新生成键,幂等保护失效
  • 缓存过期后同一键重新执行,出现重复业务

数据来源与参考

  • IETF 草案:The Idempotency-Key HTTP Header Field
  • Stripe API 文档:Idempotent requests
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌