很多人认为幂等 = 唯一索引,实际生产中要考虑:
- 重复提交的识别:Token 预领取机制
- 并发下的判断:先查再插不是原子的,要靠唯一索引兜底
- 失败重试:网络超时后客户端重试,必须返回相同结果
- 消息重复消费:消费端维护去重表
推荐方案:Token + 唯一索引 + 状态机三重保障。
很多人认为幂等 = 唯一索引,实际生产中要考虑:
推荐方案:Token + 唯一索引 + 状态机三重保障。
补充:分布式锁也能做,但要注意锁的粒度与超时时间,别把请求都堵死。
我们用的 Redis + token,前端进入表单页时先请求 token,提交时带上,后端删除成功才执行业务。