慕课网:Java高并发秒杀API之业务分析与DAO层(2)--秒杀业务分析
用户秒杀有两件事做
- 减库存
- 记录购买明细
购买行为(记录购买成功信息)
- 谁购买成功了
- 成功的时间/有效期
- 付款/发货信息
为什么需要事务?
- 减库存没有记录购买明细
- 记了明细没有减库存
- 出现超卖/少卖
难点问题-“竞争”
Mysql---事务+行级锁
1)事务
- start transaction
- update 库存数量
- insert 购买明细
- commit
2)行级锁
行级锁,commit之后才释放(即同一个时间只有一个用户修改,其他用户等待)
实现哪些秒杀功能?
- 秒杀接口暴露
- 执行秒杀
- 相关查询
代码开发阶段
- DAO设计编码
- Service设计编码
- Web设计编码