接口幂等性与防重复提交规范
# 接口幂等性与防重复提交规范
# 幂等性定义与范围
- 重复调用同一接口多次与调用一次的结果一致视为幂等
- 对外公开的创建、支付、扣款等重要接口必须考虑幂等性
# 幂等 Key 设计
- 幂等 Key 由业务唯一标识与操作类型构成
- 常见组合包括
业务单号、用户标识、接口类型
idempotent:{businessType}:{businessId}
1
# 实现方式
- 使用数据库唯一约束保证幂等,例如订单号唯一
- 使用 Redis 记录处理中的请求与处理结果
- 对接第三方时结合对方返回的业务单号或事务号进行校验
# 防重复提交
- 对前端按钮通过禁用与前端校验减少重复提交
- 后端通过分布式锁或幂等 Key 阻止并发重复处理
- 对关键操作增加操作频率限制或滑动窗口控制
# 失败重试与补偿
- 当调用链中存在重试机制时,在业务层实现幂等逻辑
- 对关键操作设计补偿流程与手工处理通道