接口设计
接口幂等设计的工程化落地
- 07/20
- 09:01
在业务系统里,重复请求不是异常边角,而是正常流量的一部分。用户连续点击、客户端超时重试、消息队列重复投递、网关重放请求,都可能让同一个业务动作被执行多次。如果接口没有幂等设计,轻则产生重复记录,重则造成重复扣款、重复发货或状态错乱。
本文讨论的是工程落地层面的接口幂等,不展开分布式事务、强一致协议或特定框架实现。结论先说清楚:幂等不是简单加一个唯一索引,也不是所有接口都要用同一种方案;它需要先定义业务动作的唯一性,再选择合适的约束、状态机和重试响应策略。
适用场景包括订单创建、支付回调、优惠券领取、任务提交、消息消费等“重复执行会产生副作用”的接口。对于纯查询接口,重点通常不在幂等,而在缓存一致性、分页稳定性和权限边界。
1