慕课网:Java高并发秒杀API之业务分析与DAO层(2)--秒杀业务分析

慕课网:Java高并发秒杀API之业务分析与DAO层(2)--秒杀业务分析

用户秒杀有两件事做

  • 减库存 
  • 记录购买明细

购买行为(记录购买成功信息)

  • 谁购买成功了
  • 成功的时间/有效期
  • 付款/发货信息

为什么需要事务?

  • 减库存没有记录购买明细
  • 记了明细没有减库存
  • 出现超卖/少卖

难点问题-“竞争”

慕课网:Java高并发秒杀API之业务分析与DAO层(2)--秒杀业务分析

Mysql---事务+行级锁

1)事务

  1. start transaction
  2. update 库存数量
  3. insert 购买明细
  4. commit

2)行级锁

  行级锁,commit之后才释放(即同一个时间只有一个用户修改,其他用户等待)


实现哪些秒杀功能?

  • 秒杀接口暴露
  • 执行秒杀
  • 相关查询

代码开发阶段

  • DAO设计编码
  • Service设计编码
  • Web设计编码