困难 · 高频 5/5

如何设计接口幂等性方案?

接口幂等通常通过业务唯一键、请求幂等号、数据库唯一约束、状态机校验和分布式锁组合实现。

简短答案

接口幂等通常通过业务唯一键、请求幂等号、数据库唯一约束、状态机校验和分布式锁组合实现。

详细解析

幂等的目标是同一个业务请求重复到达时只产生一次有效结果。支付、下单、扣库存、消息消费都需要幂等。

  • 前端或网关生成 requestId。
  • 业务表建立唯一约束。
  • 状态流转只允许合法前置状态更新。
  • 消息消费保存消费记录。
  • 必要时用锁保护短临界区。

面试回答模板

我会先判断业务动作是否允许重复,再选择幂等键。比如订单创建用用户加商品加活动生成唯一键,支付回调用支付流水号,数据库唯一约束兜底,状态机控制重复更新。

易错点

  • 只背结论,不解释原理和边界。
  • 忽略真实生产环境中的容量、延迟、一致性和失败重试。
  • 没有结合项目经验说明为什么这样设计。

常见追问

  • 这个方案在高并发下有什么风险?
  • 如果数据规模扩大十倍,你会如何调整?
  • 线上出现异常时,你会先看哪些指标?

相关题目

继续刷题
分布式与微服务 架构 ★★★★

分布式

分布式 是 分布式与微服务 中需要重点复习的条目,已从金山文档目录导入,后续可在后台补充完整答案、代码示例和图片。