1.nignx限流部分用户参与秒杀活动
2.用户进入秒杀流程
3.用户是否分享app,才能参与秒杀
4.判断该用户是否有参与过该场秒杀记录,以及用户是否有曾经秒杀成功记录
5.记录用户正常参与该场秒杀活动,使用分布式锁尝试获取锁记录,获取不成功抛出异常。成功记录下面流程
6.秒杀商品是否秒杀完毕,使用redis自增长的做库存设定,查看库存数量。无,则已秒杀完毕
7.先到先得从redis的list结构的lpop中尝试弹出一个产品,是否成功,不成功证明已无秒杀商品
8.成功则使用redis商品场次与用户绑定,记录用户参与该场秒杀结果,以及用户秒杀成功记录
9.用户秒杀成功记录通过kafka异步,存储到mysql数据库中
10.codis已做异步持久化处理
11.释放用户参与过该场秒杀记分布式锁
来源:oschina
链接:https://my.oschina.net/u/1017791/blog/3232580