Java 高并发秒杀-系统优化(重要)

章节目录

  • 秒杀系统请求流程图
  • 系统性能瓶颈分析与优化思路
  • 彩蛋福利
1.秒杀系统请求流程图

2836699-fdb1c679bfeb764a.png
秒杀系统请求流程图

如上图所示:
红色部分表示系统可能发生高并发的点

1.用户并发请求秒杀商品详情页信息
2.用户并发获取系统时间
3.用户并发请求地址暴露接口
4.执行秒杀操作

详情页与动态请求的关系

2836699-dd8410966b27c47d.png

2.系统瓶颈分析与优化

2.1 CDN的理解

 CDN(内容分发网络),加速用户获取数据的系统
 部署在离用户最近的网络节点上
 命中CDN不需要访问后端服务器,减轻后端服务器的压力,对用户快速响应。
 互联网公司自己搭建或者租用
2836699-a2e2b837ee7e042f.png
CDN的理解

2.2 获取系统时间

2836699-aa2d7878dc2ed350.png
获取系统时间不需要优化

2.3 秒杀地址接口分析

2836699-10344adfedc98a0a.png
image.png

2836699-f7dc09eae091836c.png
秒杀地址接口优化分析

2.4秒杀操作优化分析

2836699-ad54cdab36545e4f.png
image.png

还有一个问题是,一行数据竞争:热点商品,大量更新请求竞争更新同一行数据。

2.5 其他方案分析

2836699-8e97b6a198b98148.png
其他方案分析

2836699-4aec1f80c522fa39.png
技术成本

2.6 为什么不用 mysql 解决

2836699-ac45e6a22010994d.png
测试场景

2836699-83b02c550343cc7f.png
1s 可执行4w次查询

是什么让mysql低效

2836699-c59023fe2f97df3f.png
image.png

瓶颈分析

2836699-c74a9f80ddbc4e1d.png
瓶颈分析

gc一般持续40-50ms

优化方向-减少行级锁持有时间

2836699-4697305dfa35290e.png
减少行级锁持有时间

延迟分析
延迟分析很关键

2836699-0e9b0aed2932e9cc.png
网络与GC

系统并发越高,垃圾回收会越频繁。
异地机房
2836699-3d87c8a372db3a68.png

如何判断Update更新库存成功

1.update没有报错
2.客户端确认update影响行数
2836699-3a97358f7f88cff2.png
优化思路
2836699-5eeb1ba819ffc205.png
image.png

把SQL全部放置在mysql上执行会更快。减少java 客户端GC以及通信之间的网络干扰。

2836699-9d8df902d1fcf4f9.png
优化思路
彩蛋福利

职位:腾讯OMG 广告后台高级开发工程师;
Base:深圳;
场景:海量数据,To B,To C,场景极具挑战性。
基础要求:
熟悉常用数据结构与算法;
熟悉常用网络协议,熟悉网络编程;
熟悉操作系统,有线上排查问题经验;
熟悉MySQL,oracle;
熟悉JAVA,GoLang,c++其中一种语言均可;
可内推,欢迎各位优秀开发道友私信[微笑]
期待关注我的开发小哥哥,小姐姐们私信我,机会很好,平台对标抖音,广告生态平台,类似Facebook 广告平台,希望你们用简历砸我~
联系方式 微信 13609184526

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值