Java高并发秒杀APi之高并发优化

分析高并发

秒杀业务流程中 红色部分代表有高并发的点,绿色位置表示没有影响

Paste_Image.png

CDN 内容分发网络,CDN:(内容分发式网络)加速用户获取数据的速度


Paste_Image.png

1秒等于1亿纳秒

Paste_Image.png

大部分写的操作和核心操作无法使用CDN
不可能在缓存中减库存,你在redis中减库存,那么用户也可能通过缓存来减库存,这样库存会不一致,所以要通过mysql的事务来保证一致性
比如一个商品所有人都在抢,那么会在同一时间对数据表中的一行数据进行大量的update set操作


Paste_Image.png

秒杀地址接口优化
一致性维护
可以设置缓存超时时间,到了一定时间,再去mysql数据库取
可以主动更新,mysql数据服务更新,缓存也能同时更新

Paste_Image.png

高并发解决方案

Paste_Image.png

4.Mysql事务行锁串行等待执行,一个事务提交或回滚,下一个事务才能执行。

Paste_Image.png

持有行级锁是在update上,释放锁是在commit(spring控制),也就是锁持有时间是update和commit之间的时间。这个过程网络请求越少,锁持有时间就越短。

Paste_Image.png

-- 存储过程 (只在银行被大量的时候,互联网公司用的很少,但是在秒杀中用)
-- 1.存储过程优化: 事务行级锁持有的时间
-- 2.不要过渡依赖存储过程
-- 3.简单的逻辑可以应用存储过程
-- 4.QPS:一个秒杀但6000/qps

Paste_Image.png

常用秒杀部署

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容