高并发下页面优化技术
-
页面缓存(最大粒度)+URL缓存+对象缓存(最小粒度)
-
页面静态化(页面为html,静态,访问在客户端,ajax,js访问数据),前后端分离
-
静态资源优化(图片,js,css)
-
CDN优化
并发瓶颈在数据库,我们减少对数据库的访问,最有效的方式就是缓存
页面缓存:
-
取缓存
-
手动渲染模版
-
结果输出
对象缓存
-
失效:应用程序先从缓存中取数据,没有得到,则从数据库中取,成功后,放到缓存中;
-
命中:应用程序从缓存中取数据,取得后返回;
-
更新:先将数据存到数据库中,成功后,再让缓存失效;
对象缓存之后,若有数据更新,一定要更新缓存,否则会出现缓存不一致的情况
缓存结果:QPS提高一倍多,mysql负载变得很小,系统负载变小
页面静态化
简单来说,就是使用html进行页面展示,ajax进行前后端交互,流行的框架有Vue、Angular。静态化可以使html代码在客户端缓存,不需要去请求服务器。
浏览器缓存
-
Pragma HTTP1.0
-
Expire HTTP1.1 标准时间(时区) 服务端时间
-
Cache-Control 秒
静态资源优化
-
JS/CSS压缩,减少流量
-
多个JS/CSS组合,减少连接数(Tengine,webpack)
-
CDN
用户发起请求->页面静态化缓存在客户端->CDN->Nginx缓存->请求到达服务端,页面缓存->对象缓存->数据库。通过不同粒度,不同层面的缓存,逐步减少对数据库的负载。