seckill
商品秒杀系统——Java并发实战和并发优化
优化总结:
- 前端控制:暴露接口,按钮防重复
- 动静态数据分离:CDN缓存,后端缓存
- 事务竞争优化:减少事务锁时间(存储过程)
后端优化
- 使用redis缓存热门商品
- 优化点:暴露接口。
- 用户可能一直再刷页面。越热的产品访问越多
- 事务简单优化:秒杀执行优化
- 行级锁发生在减库存操作
- 先执行记录购买行为,再执行减库存操作
事务竞争优化
- 事务SQL在MySql端执行(存储过程)
- 存储过程优化:事务行级锁持有时间
- 不要过多依赖存储过程
- 简单的逻辑可以应用存储过程
- QPS: 一个秒杀单6000/qps