一句话说清楚
网络不可靠意味着「请求超时但实际成功」经常发生:支付接口没收到响应就重试,如果没有幂等保护,用户被扣两次款。幂等设计的标准做法是客户端生成唯一请求 ID(幂等键),服务端对同 ID 的重复请求返回首次结果而不是再次执行。
这对你选工具意味着什么
所有写操作(支付/下单/扣库存/发消息)默认要幂等;幂等键由调用方生成(业务单号/UUID),服务端用「键 + 结果存储」去重;HTTP 语义上 PUT 天然幂等,POST 需要额外设计。
常见误区
「幂等键过期就允许重复执行」是漏洞——幂等记录的保留时长要覆盖重试窗口;另一个常见坑是只防了并发重复没防「先后重复」。