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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 章节目录秒杀系统请求流程图系统性能瓶颈分析与优化思路彩蛋福利1.秒杀系统请求流程图秒杀系统请求流程图如上图所示:红色部分表示系统可能发生高并发的点1.用户并发请求秒杀商品详情页信息2.用户并发获取系统时间3.用户并发请求地址暴露接口4.执行秒杀操作详情页与动态请求的关系2.系统瓶颈分析与优化2.1 CDN的理解 CDN(内容分发网络),加速用户获取数据的系统 部署在离用户最近的网络节点上 命中CDN不需要访问后端服务器,减轻后端服务器的压力,对用户快速响应。

章节目录

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

1.秒杀系统请求流程图

img_8765b623c0744d21a348c275c0b64ea2.png
秒杀系统请求流程图

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

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

详情页与动态请求的关系

img_3d112baeef14675535fe89813c0c36b3.png

2.系统瓶颈分析与优化

2.1 CDN的理解

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

2.2 获取系统时间

img_edfd9dabddde006711c6729c2ced5869.png
获取系统时间不需要优化

2.3 秒杀地址接口分析

img_7acd4771a16bb6ade87f5cc47edba0c7.png
image.png

img_72233c80690f96b1b4cdc9e3514bc688.png
秒杀地址接口优化分析

2.4秒杀操作优化分析

img_dbcf529c7acec5d8cebfbed45146cf2f.png
image.png

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

2.5 其他方案分析

img_5fd12ee9ac8dadc62210dff7dce2532b.png
其他方案分析

img_b9c8861c2819f71e5621935dea2130ad.png
技术成本

2.6 为什么不用 mysql 解决

img_20ca5a29ee2bf64795acca7f25dd39f9.png
测试场景

img_d9493ce3739a187826b704eed20c2f64.png
1s 可执行4w次查询

是什么让mysql低效

img_0f7af1c508ab624f6e69b3d2ec453a32.png
image.png

瓶颈分析

img_2aa17d7168695a8d8e6b5b745e206ff4.png
瓶颈分析

gc一般持续40-50ms

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

img_a6752950458b596d0e22894abbb14a0f.png
减少行级锁持有时间

延迟分析
延迟分析很关键

img_a8e69aad7d01bf5e121f702342081665.png
网络与GC

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

如何判断Update更新库存成功

1.update没有报错
2.客户端确认update影响行数
img_e26997a399c0936e9e7be15a316b1976.png
优化思路
img_2ab2cb14deeafe9e6d1ff550617fa4cd.png
image.png

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

img_5c051ce35f609505070749733caddb2f.png
优化思路

彩蛋福利

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

目录
相关文章
|
4月前
|
Java
在高并发环境下,再次认识java 锁
在高并发环境下,再次认识java 锁
34 0
|
4月前
|
消息中间件 NoSQL Java
Java高级开发:高并发+分布式+高性能+Spring全家桶+性能优化
Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
|
1天前
|
缓存 负载均衡 Java
Java高并发性能指标
Java高并发是指在Java编程环境中,系统能够同时处理大量并发请求或操作的能力。这里的“高”强调的是并发处理的数量级较大,需要系统能够有效地管理多个并发的执行单元,如线程或进程,以确保它们能够高效且正确地执行。
12 5
|
5天前
|
JavaScript Java 测试技术
基于Java的高并发慕课网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的高并发慕课网的设计与实现(源码+lw+部署文档+讲解等)
17 2
|
1月前
|
编解码 分布式计算 网络协议
一文让你深入了解 Java-Netty高性能高并发
一文让你深入了解 Java-Netty高性能高并发
48 1
|
4月前
|
Java Go C语言
高并发时代到底是Go还是Java?
作为一名用过Java和Go开发过微服务架构程序的在校学生的角度思考,本文将从以下几个方便来讲述Go和Java的区别。
|
4月前
|
Java 数据库连接 微服务
Java程序员必学知识:高并发+微服务+数据结构+Mybatis实战实践
BATJ最全架构技术合集:高并发+微服务+数据结构+SpringBoot 关于一线互联网大厂网站的一些特点:用户多,分布广泛、大流量,高并发、海量数据,服务高可用、安全环境恶劣,易受网络攻击、功能多,变更快,频繁发布、从小到大,渐进发展、以用户为中心。 如果你工作中够仔细,你会发现这些特点跟高并发、分布式、微服务、Nginx这些技术密切相关的,是因为只要你的公司在上升,用户量级都会与日俱增,高性能、高并发的问题自然避免不了,话不多说往下看。
|
4月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
5月前
|
缓存 容灾 网络协议
Java面试题 -高并发、高可用、分布式
Java面试题 -高并发、高可用、分布式
82 0
|
6月前
|
Java 程序员
GitHub开源2小时Star破10万,阿里Java高并发集合手册终是被公开
对Java技术人员来说,我们对学习技术的态度不能只是“知其然”,更要做到“知其所以然”。如果要真正理解一项技术,分析源码是最直观且最有效的方式。虽然在我们的技术体系中JCF和JUC的知识可能还不到10%,但是我们工作中80%的场景都离不开它们。根据2/8法则,我们有充分的理由好好吃透JCF和JUC,如果你还没有准备好,那么这份文档可以给你这个机会

热门文章

最新文章