如何提高网站首页的访问性能
2017-12-08 09:41
477 查看
如何提高网站首页的访问性能
标签: 淘淘商城对于电子商务网站来说,门户首页作为所有操作的入口,访问并发量是巨大的,那问题来了,如何提高网站首页的性能呢?答案是:静态化。
一、 现状
首先我们分析下需要优化的页面的整个执行逻辑路径。如下图所示:说明:用户在浏览器发起请求之后,请求的执行路径是 Nginx –> Tomcat –> Controler –> Service – > (httpClient) –>后台系统查询数据
二、改进步骤一
由于首页内容不会频繁的变化,所以可以将Service的HttpClient请求后台数据的数据存储到缓存中,加快并发读的性能。那逻辑路径则演变成:将查询将Http请求改成查询本地缓存数据,性能可提高90%。
三、改进步骤二
通过上面的缓存数据读取优化之后性能得到了质的提升,但是如果每次访问首页得到的缓存数据都是相同的,那每次返回给Tomcat解析的视图其实都是一模一样的,那是否可以将这边解析好的视图直接存储的缓存中,那就没有后端什么事了。如下图所示:这样就变成:用户发送请求直接从Nginx请求一个静态页面,这样就能很大的提高首页的并发能力了。那网站首页的性能就能集中在Nginx上解决了,至于Nginx的性能优化,后续补上
四.最终的问题就变成了如何生成这个静态页面。
什么时候生成静态页定时生成:通过定时任务的模式定时更新这个静态文件(Quarz + httpClient、Linux + wget的定时任务)
实时生成:修改首页涉及的页面内容之后,触发更新静态页面的功能
怎么生成静态页面,先看下目前整个首页的访问逻辑图如下:
原来的后台结构不变,只需要再增加一个应用去通过httpClient的doget方法去访问后将响应的数据返回回来写入到指定的文件中即可。
这样整个首页就完成了静态化的操作。
附:另外还有个小优化,查看京东首页的图片资源,均为相对路径,这个是为什么呢?分析有两个原因:
1、传输数据的大小
2、由于浏览器加载同一个域名的资源的的最大并发线程数有限制,如果所有资源都在一个域名下的话会验证的降低加载资源的效率。所以再首页中通过拼接域名的模式来加载资源,这样可以突破浏览器对同一个域名的加载限制
相关文章推荐
- php大型网站如何提高性能和并发访问
- php大型网站如何提高性能和并发访问
- php大型网站如何提高性能和并发访问
- 如何为网站减负,提高访问性能?
- php大型网站如何提高性能和并发访问
- 优化网站性能 提高网站速度访问速度的14条实践
- 如何提高数据库访问性能
- 开餐馆与做软件——如何提高大型网站性能
- 26种提高ASP.NET网站访问性能的优化方法
- 如何提高网站的访问速度 - 从30秒到3秒的改变
- 优化网站性能 提高网站速度访问速度的14条实践
- 如何使用YSLOW提高网站性能
- [网站架构]如何提高网站的访问速度 - 从30秒到3秒的飞跃
- 如何解决网站大规模并发访问带来的性能下降问题
- 如何真正提高ASP.NET网站的性能
- 如何提高网站的访问速度
- C#开发网站如何提高性能
- 单台web服务器如何尽可能的提高网站性能
- 如何提高网站性能
- 提高网站性能之 —— 如何对待JavaScript