一.秒杀系统的业务分析
1.秒杀系统的业务流程
首先会有三个实体,商家、库存、用户
商家和库存对应的关系,比如商家会添加/调整库存,然后库存会反应商家的发货/核账信息;库存与用户的对应关系,如:用户会秒杀/预售库存中的产品,反过来用户的付款/退货信息也会反应到库存上去。
也就是说整个系统其实是针对库存做的系统。即:秒杀业务的核心其实是对库存的处理。
2.用户对库存是如何处理的
用户秒杀一个商品,就会减库存,并记录购买明细,然后这两件事情构成一个完成的事务,最后写入数据库。
3.什么是购买行为
购买行为,主要是记录:谁购买成功了,成功的时间,以及付款/发货的信息。
二.秒杀系统难点分析
1.难点问题-竞争
这个问题反应到背后的技术:事务+行级锁
我们在秒杀的时候,其实竞争问题主要发生在update库存数量这里,那么有了行级锁和事务之后,当一个事务在执行的时候,即:在执行update库存数量,其他事务就必须等待。如下图:
2.秒杀难点-如何高效的完成竞争?
见后续。