上期回顾:Java Seckill Module:Order details are static and Resolve purchases beyond
静态资源优化
1.JS/CSS压缩,减少流量(压缩版,去掉空格的jQuery.min.js)。 2.多个JS/CSS组合成一个请求,从服务端全部下载出来,减少连接数 。(例子:tengine)
如果页面复杂的话,很可能会引入很多js/css文件,浏览器和服务器建立连接的时候,不是说有多少个js就会并发同时建立多少个连接,从服务端来获取这个页面,而是说如果页面资源文件比较多,打开页面的时候需要跟服务端建立多个连接,并且需要多次进行访问的时候才可以,而HTTP至少需要3次握手,这样频繁多次连接,会导致页面首次加载非常的慢,如果把页面静态资源一下子全部都下载下来就快很多了。
3.CDN就近访问。
将网站的数据缓存到全网的各个节点上,每个节点上都缓存了数据,用户在访问网站的时候,cdn会根据用户的位置,把请求定位到离你最近的镜像,指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
解决并发大的问题:
瓶颈是出现在数据库上的,最有效的手段就是加缓存,从用户的角度来说,用户发起请求的时候,从浏览器开始,从浏览器做页面的静态化,可以直接把页面缓存到浏览器上面,可以部署一些cdn节点,也可以加nginx,如果nginx里面没有缓存可以在应用程序中加页面缓存,再细粒度就是对象缓存,到最后面才是数据库,通过一层层的削减,来减少数据库的访问数量。
缓存还需要考虑一个数据不一致的情况。