page contents

高并发下更新库存会有什么问题?

Pack 发布于 2020-03-03 17:58
阅读 901
收藏 0
分类:PHP开发

题目描述

高并发下更新库存会有什么问题和使用状态实现幂等

题目来源及自己的思路

MIC老师在2019.8.31ROCKETMQ分布式事务时提到这个问题。正常情况下,库存是通过更新关系型数据库商品表的某条记录的库存就好了。那么在高并发下呢?会有什么问题?
那实现幂等呢?使用状态实现幂等是怎么实现的呢?

510
Pack
Pack

不是高并发的问题,是分布式的问题
分布式环境下库存和订单可能是存放在2个不同数据库中的,中间会通过消息中间件来操作
从而导致无法在一个事务中操作,会发生下了订单后因为网络问题多次进行扣减库存的现象
这时就需要通过幂等来保证一次订单只扣减一次库存
用状态机的话就是在扣减库存时修改订单的状态(例如已扣库存),再次扣减库存的时候先查询订单状态,如果是一扣除库存的话就不在操作,从而保证数据一致

请先 登录 后评论