如何保证商品不超买,接口的幂等性
1.前端防抖动,且下单后重定向到其他页面,执行当前订单的查询功能
2.使用token,相同token的请求被直接返回
3.AOP 防重复提交注解 将请求体使用MD5加密变成字符串,使用Redis存储,setnx命令,一定时间内无法插入的数据则视为重复提交
4.使用分布式锁,对库存处理步骤进行加锁
5.库存存储在Redis,使用decr命令进行处理,失败时则库存为0
6.使用悲观锁,在innoDB下,使用for update语句对库存进行行锁
6.使用乐观锁,添加version字段,进行校验
7.使用状态机
8.使用唯一索引