今天是这个系列的最后一点东西,也是最重要的一点东西,可以说是整个系列最终要的,在这篇文章中,你会初步了解一些优化高并发的知识。如果你没有阅读前几篇,希望您先浏览一下,地址如下
实战篇:基于SSM的秒杀系统之项目介绍
实战篇:基于SSM的秒杀系统之项目搭建和数据库设计
实战篇:基于SSM的秒杀系统之DAO层搭建
实战篇:基于SSM的秒杀系统之Service层搭建
实战篇:基于SSM的秒杀系统之WEB层搭建
优化点
我们先来看一下整个系统的可以进行高并发的优化点有哪些
如图所示,图中红色的部分都是高并发的点,而绿色的则不需要,下面呢将一部分一部分的进行讲解
详情页优化
我们都知道在秒杀商品的时候我们都会刷新页面,所以详情页的访问量很高,但是详情页基本上是不变的,所以我们想到用CDN进行优化,先来介绍一下CDN:
CDN的理解
CDN主要用来对静态资源进行优化,很多大的公司都有自己的CDN,也有很多公司提供CDN加速服务。
获取系统时间的优化
实际上获取系统时间不需要进行优化,因为Java获取系统的时间很快,Java访问一次内存的时间大约为10ns,所以这一块可以不用进行过多的优化。
秒杀地址接口的优化
这一部分是高并发的重灾区,所以重点讲一下
秒杀地址接口属于动态资源,只能从服务器端进行优化,分析之后就要进行优化了
解释一下超时穿透,就是说,高并发的东西先缓存在redis中,如果要访问的时候redis中没有则去数据库访问或者超时的时候主动去数据库拉去新的数据
秒杀操作的优化
介绍几种操作的方案
针对这几种方案,在成本上进行分析一下
Java事务控制分析
从图中可以看出,在整个事务中,行级锁是造成时间延迟的根本原因,那么怎么来解决这个问题呢?
根据分析我们可以发现,我们优化的方向是减少行级锁的持有时间,换句话说就是在数据库执行成功之后,我们要在数据库里判断而不是在程序中判断,所以我们的方向是
上边基本上寥寥草草的讲述了优化,最后来总结一下
![优化总结](http://upload-images.jianshu.io/upload_images/1007420-b3c567179d2faaf5.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)