1 Star 0 Fork 0

那后来呢 / seckill

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

jMeter的使用

秒杀活动如何解决超卖

扣减操作要原子化

如果库存在数据库,扣减时判断下库存 update goods set stock_count=stock_count-1 where stock_count>0;

如果库存在Redis,则要使用Lua脚本来扣减

另一个极端方案,就是加分布式锁,一个一个下单。完全不支持并发

如何解决重复下单

这块搞少点用户,多点商品,压测试下

如何提高并发能力

数据库压力大,搞redis缓存

redis压力大,搞进程内缓存标记一下售馨状态

或者限流,反正最终目的就是减少无效请求

异步下单

使用消息队列削峰

库存放在Redis中,扣减库存仍然要保证原子性,使用LUA脚本

如何防止机器刷接口

  1. 访问页面时生成令牌,携带令牌的才允许调用接口

  2. 验证码

  3. 不在js里暴露接口,秒杀前查询秒杀接口Url

隐藏接口

秒杀时不直接调用秒杀接口

先调接口查询秒杀url+访问令牌,再调用这个url携带上令牌

限流算法

计数器、令牌桶、漏桶

空文件

简介

秒杀项目学习 展开 收起
Java 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/libra0920/seckill.git
git@gitee.com:libra0920/seckill.git
libra0920
seckill
seckill
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891