分流(随机丢弃用户) + 多次队列(缓存) 比如10个商品,10万个用户 1,按秒杀前在页面中有活跃的用户数,按一定比例,分离一批用户出来,直接返回秒杀失败,只留下300个用户 2,将这300个用户写入第一次队列,比如redis的列表,mysql中的一张表等 3,获取队列中的前10个用户,为秒杀成功,生成订单,其它用户提示秒杀失败 4,有些秒杀业务(如小米),在第三步操作时,每个用户都提示成功,但在提交用户订单资料的时候,再生成一个队列,根据提交资料的顺序,取前10名提示秒杀成功,其它用户提示秒杀失败
分流(随机丢弃用户) + 多次队列(缓存)
比如10个商品,10万个用户
1,按秒杀前在页面中有活跃的用户数,按一定比例,分离一批用户出来,直接返回秒杀失败,只留下300个用户
2,将这300个用户写入第一次队列,比如redis的列表,mysql中的一张表等
3,获取队列中的前10个用户,为秒杀成功,生成订单,其它用户提示秒杀失败
4,有些秒杀业务(如小米),在第三步操作时,每个用户都提示成功,但在提交用户订单资料的时候,再生成一个队列,根据提交资料的顺序,取前10名提示秒杀成功,其它用户提示秒杀失败