如何提高网站首页的访问性能

如何提高网站首页的访问性能

标签: 淘淘商城


对于电子商务网站来说,门户首页作为所有操作的入口,访问并发量是巨大的,那问题来了,如何提高网站首页的性能呢?答案是:静态化。

一、 现状

首先我们分析下需要优化的页面的整个执行逻辑路径。如下图所示:这里写图片描述
说明:用户在浏览器发起请求之后,请求的执行路径是 Nginx –> Tomcat –> Controler –> Service – > (httpClient) –>后台系统查询数据

二、改进步骤一

由于首页内容不会频繁的变化,所以可以将Service的HttpClient请求后台数据的数据存储到缓存中,加快并发读的性能。那逻辑路径则演变成:
这里写图片描述
将查询将Http请求改成查询本地缓存数据,性能可提高90%。

三、改进步骤二

通过上面的缓存数据读取优化之后性能得到了质的提升,但是如果每次访问首页得到的缓存数据都是相同的,那每次返回给Tomcat解析的视图其实都是一模一样的,那是否可以将这边解析好的视图直接存储的缓存中,那就没有后端什么事了。如下图所示:
这里写图片描述
这样就变成:用户发送请求直接从Nginx请求一个静态页面,这样就能很大的提高首页的并发能力了。那网站首页的性能就能集中在Nginx上解决了,至于Nginx的性能优化,后续补上

四.最终的问题就变成了如何生成这个静态页面。


  • 什么时候生成静态页

定时生成:通过定时任务的模式定时更新这个静态文件(Quarz + httpClient、Linux + wget的定时任务)
实时生成:修改首页涉及的页面内容之后,触发更新静态页面的功能

  • 怎么生成静态页面,先看下目前整个首页的访问逻辑图如下:
    这里写图片描述
    原来的后台结构不变,只需要再增加一个应用去通过httpClient的doget方法去访问后将响应的数据返回回来写入到指定的文件中即可。

这样整个首页就完成了静态化的操作。
附:另外还有个小优化,查看京东首页的图片资源,均为相对路径,这个是为什么呢?分析有两个原因:
1、传输数据的大小
2、由于浏览器加载同一个域名的资源的的最大并发线程数有限制,如果所有资源都在一个域名下的话会验证的降低加载资源的效率。所以再首页中通过拼接域名的模式来加载资源,这样可以突破浏览器对同一个域名的加载限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值