用幂等键让重试安全,避免重复下单、重复扣款这类经典问题。
#backend#api#reliability
问题
网络会超时,客户端会重试。如果写接口不是幂等的,重试就可能造成重复副作用。
做法
- 客户端为每次写操作生成 幂等键(如 UUID);
- 服务端首次处理后,将结果与键一起持久化;
- 同键再次到达时,直接返回上次结果,而不重复执行。
幂等是分布式系统里少数“加一点点成本,省很多麻烦”的设计。
用幂等键让重试安全,避免重复下单、重复扣款这类经典问题。
网络会超时,客户端会重试。如果写接口不是幂等的,重试就可能造成重复副作用。
幂等是分布式系统里少数“加一点点成本,省很多麻烦”的设计。