时间:2021-07-01 10:21:17 帮助过:14人阅读
其他语言的秒杀工具也可以推荐来撸一下
php有木有秒杀插件可推荐?或者说一个php秒杀程序实现的思路是啥?用到啥技术?
其他语言的秒杀工具也可以推荐来撸一下
分流(随机丢弃用户) + 多次队列(缓存)
比如10个商品,10万个用户
1,按秒杀前在页面中有活跃的用户数,按一定比例,分离一批用户出来,直接返回秒杀失败,只留下300个用户
2,将这300个用户写入第一次队列,比如redis的列表,mysql中的一张表等
3,获取队列中的前10个用户,为秒杀成功,生成订单,其它用户提示秒杀失败
4,有些秒杀业务(如小米),在第三步操作时,每个用户都提示成功,但在提交用户订单资料的时候,再生成一个队列,根据提交资料的顺序,取前10名提示秒杀成功,其它用户提示秒杀失败
单个商品的秒杀可以借鉴文件系统的锁机制, 同时只有一个人/进程/线程在处理/打开/拥有状态, 直到释放/关闭/订单过期.
多个商品的秒杀可以借鉴队列的机制, 先进先出/先到先得/手快有手慢无.
redis队列,memcache Memcache::decrement