[发明专利]一种网络请求的处理方法和系统、网络服务提供装置有效
申请号: | 201110229622.8 | 申请日: | 2011-08-11 |
公开(公告)号: | CN102932390A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 楼江航 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络 请求 处理 方法 系统 网络服务 提供 装置 | ||
技术领域
本申请涉及网络请求处理技术领域,特别是涉及一种网络请求的处理方法和系统、一种网络服务提供装置。
背景技术
现有的业务系统往往充斥着大量网络请求的处理。例如,每个网络服务提供者都希望他们的网站拥有广泛的用户群并且能够在同一时间内为尽量多的用户提供服务。特别是提供在线事务处理的网站,比如银行的网站,网上购物的网站等。对于这些网站而言,同时在线的用户数越多就意味着能够处理的事务量越多,进而网络服务提供者能够获得的收益也就越丰厚。
但是,在网络请求的数量达到一定的量级时,比如较为复杂的电子商务网站页面,在性能分析时,发现后台代码执行过程中90%的时间都是处于等待外部资源的响应,CPU利用率不高(在10%以下),单次网络请求的响应时间在200ms左右,这样,tps(每秒处理请求数,Transaction Per Second)为20并发*(1000/200)=100。
针对上述性能不高的缺点,现有技术通常使用页面Ajax(异步JavaScript和XML,Asynchronous JavaScript and XML),在前台实现数据的异步加载。以HTML(文本标记语言,Hypertext Markup Language)页面渲染的网络请求为例,现有技术加载数据的方法具体可以包括:
步骤1、浏览器接收来自用户的HTML页面渲染的请求;
步骤2、浏览器首先给页面的一块区域渲染一块空的div id=A内容和一块div id=B的内容;div是指HTML页面中的div标签,div id=A主要是代表HTML页面上的一块显示内容;
步骤3、浏览器继续渲染页面的其他内容;
步骤4、浏览器在页面底部执行具体的JavaScript时,向服务器发起divid=A的网络请求,等相应数据结果返回后填充对应的div内容,然后向服务器发起div id=B的网络请求,返回后同样填充。
现有技术通过前台HTML页面的异步加载处理,能够减少网络请求的响应时间,提升用户体验,但浏览器在向服务器发起网络请求时都会发起一次HTTP(超文本传输协议,HyperText Transfer Protocol)调用,由于页面上的每个区块都会发起一次网络请求,这样,在页面区块比较多时,就会发起多次HTTP调用。
而每个HTTP调用都会发起一次和服务端的TCP(传输控制协议,Transmission Control Protocol)链接,并且,后台服务器会为每个HTTP调用分配一个线程处理,每个线程都会占用系统的一定(例如:2MB)的内存;这样,在线程数量多的情况下,操作系统的调度,会导致出现大量的上下文切换和频繁中断响应,所述内存消耗和线程调度消耗都会严重影响后台服务器的性能。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够更好地处理来自用户的网络请求,以减少网络请求的响应时间。
发明内容
本申请所要解决的技术问题是提供一种网络请求的处理方法和系统、一种网络服务提供装置,能够大大减少网络请求的响应时间。
为了解决上述问题,本申请公开了一种网络请求的处理方法,包括:
网络服务器接收浏览器客户端提交的网络请求;
网络服务器依据该网络请求,初始化相应的动作对象,所述初始化过程包括:根据预先定义的需要拦截的被调用服务信息,拦截需要向所述动作对象中注入的被调用服务,生成与所述被调用服务相应的代理服务,并注入至所述动作对象;
所述代理服务在接受调用时,将调用请求委托给相应的被调用服务,并将该被调用服务提交至线程池,由多线程池对该被调用服务进行加载;
在某一代理服务将相应的被调用服务提交至线程池时,生成与该代理服务相应的代理返回对象;其中,下一代理服务的调用等待直至上一代理服务的代理返回对象返回;
所述代理返回对象在接受调用时,检查线程池中相应的被调用服务是否加载完毕,若是,则提取加载结果并返回给所述网络服务器,否则,进行阻塞等待;
所述网络服务器依据所有代理服务的加载结果,处理得到相应的网页代码结果,并一次性返回给浏览器客户端。
优选的,所述生成与所述被调用服务相应的代理服务的步骤,包括:
依据预先定义的需要拦截的被调用服务信息,分析所述被调用服务的类信息;
依据所述类信息,搜集所述被调用服务的类的方法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110229622.8/2.html,转载请声明来源钻瓜专利网。