您的位置:首页 > 理论基础 > 计算机网络

Web项目性能优化之减少HTTP请求次数优化

2017-09-28 09:03 537 查看
作为项目经理的我,在近两个月内,时常被客户抱怨,我们的Web程序性能太差,经常宕机,即使服务器的配置再好,在业务请求量大的情况下也比较容易出现系统繁忙,线程堵塞,最后Web容器的HTTP线程池被慢慢耗尽而出现宕机问题,无法对外提供服务。
         于是在多方压力下,与同事连续苦战,顶着压力,发现一些严重影响Web系统性能的问题:前台频繁与后台交互数据,且交互的数据约为500KB的数据,客户端与服务端来回传输的数据接近1M。
         频繁的请求服务器,会造成页面响应缓慢,数据加载缓慢的问题,若果并发量大的时候,很容易造成系统瘫痪。
         对于SSH项目而言,在很多情况下,大多数的服务都是提供查询数据信息服务和信息展现服务,涉及的数据修改服务则会相对少很多。而对于查询服务而言,若能减少前台客户端和后端服务器数据交互的次数,则对整个Web系统是很大的性能提升。
1、从网络方面而言,减少数据的交互就意味着减少了网络带宽的压力,能够提供更大并发量的服务,减少网络传输的时间。
2、由于减少了请求次数,服务器的资源开销得到有效减少,后台服务器不用频繁的创建线程来处理外部的请求,由于操作系统创建和销毁线程的操作是非常消耗系统CPU等资源,因此减少请求次数也就大大减少了系统开销。
 
解决优化办法:
在一次查询中,首次请求后台时,后台一次性将所需要的信息全部返回,前台进行缓存,后续所有的操作均解析前台缓存数据,从中取出页面操作所需要的信息然后再进行展现,有效减少请求后台服务器的次数。相对于程序和网络延迟来说,网络传输所耗费的时间,要比解析数据要慢的多,即使返回的数据量大,也不会比网络延迟的影响更大。
具体缓存的策略,可以是一个数组对象,一个列表对象,或一个HashMap对象等,也可以是JSON数据,或XML内容。总之,只要有利于缓存的数据结构,都可以用于数据的缓存。
此种方法,对比较大的数据来说,非常有效,能有效缓解服务器的压力和网络压力,提高系统的整体性能。

来源:http://blog.csdn.net/yangkang029/article/details/50186257
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: