代码拉取完成,页面将自动刷新
扣减操作要原子化
如果库存在数据库,扣减时判断下库存 update goods set stock_count=stock_count-1 where stock_count>0;
如果库存在Redis,则要使用Lua脚本来扣减
另一个极端方案,就是加分布式锁,一个一个下单。完全不支持并发
这块搞少点用户,多点商品,压测试下
数据库压力大,搞redis缓存
redis压力大,搞进程内缓存标记一下售馨状态
或者限流,反正最终目的就是减少无效请求
使用消息队列削峰
库存放在Redis中,扣减库存仍然要保证原子性,使用LUA脚本
访问页面时生成令牌,携带令牌的才允许调用接口
验证码
不在js里暴露接口,秒杀前查询秒杀接口Url
秒杀时不直接调用秒杀接口
先调接口查询秒杀url+访问令牌,再调用这个url携带上令牌
计数器、令牌桶、漏桶
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。