1 个回答
常见的解决此类库存重复扣减的方案有:
对于在实际开发中,我们常用的方案一般是接口幂等性的解决方案,也就是:
接口幂等性的方案流程如下:

1、订单提交按钮单击置灰,避免重复提交。注:对于按钮置灰这种方案,可以减少用户误触重复提交的可能性,但不能从根本上解决库存被重复扣减的问题,比如通过脚本来刷扣减库存的接口,依旧造成库存的重复扣减。
2、保证库存扣减接口的幂等性。注:保证接口幂等的方案有很多,比如每次扣减库存时,带上唯一的流水号,利用数据库的唯一索引保证幂等等。
3、采用令牌机制。用户提交订单会进行令牌校验,校验通过才能提交订单。注:这种方案保证每次提交的订单是唯一的,如果用户多次下单,那么会产生多个订单。
对于在实际开发中,我们常用的方案一般是接口幂等性的解决方案,也就是:
在库存扣减接口入参中增加订单序列号作为唯一标识,库存扣减时增加一条扣减日志。当接口重复请求时,会优先校验是否已经存在扣减记录,如果已存在则直接返回,避免重复扣减问题
接口幂等性的方案流程如下:

发布于:2年前 (2023-03-17) IP属地:四川省
我来回答
您需要 登录 后回答此问题!