一种用于处理http请求的方法与设备的制造方法_4

文档序号:8226071阅读:来源:国知局
设备I可通过调用第一网络设备I自身提供的应用程序接口(API)来获取各第二网络设备的资源状态信息。
[0098]本领域技术人员应能理解上述获取所述资源状态信息的方式仅为举例,其他现有的或今后可能出现的获取所述资源状态信息的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0099]本领域技术人员应能理解上述确定所述目标第二网络设备的方式仅为举例,其他现有的或今后可能出现的确定所述目标第二网络设备的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0100]在此,本发明通过结合第二网络设备的资源状态信息来确定所述目标第二网络设备,实现了多个第二网络设备之间和第二网络设备自身内部的负载均衡。
[0101]优选地,第一网络设备I在步骤SI中结合所述资源状态信息确定所述目标第二网络设备时,若基于取模数值初始确定的目标第二网络设备的资源紧张时,可由第一网络设备I将新确定的目标第二网络设备发送给初始确定的目标第二网络设备,由该初始确定的第二网络设备将http请求发送给新确定的目标第二设备。例如,接上例,对于http请求如http-request 1,假设在步骤SI中,第一网络设备I得到的取模结果为2,则原本确定处理该http请求的目标第二网络设备为编号为2的worker,但此时若worker2告知master其的当前资源紧张,则在步骤SI中,第一网络设备I可确定将其他第二网络设备中资源状态信息为资源富裕的第二网络设备如编号为“3”的worker作为处理该http请求即http-request I的目标第二网络设备,然后,由worker2将该http请求发送给worker以进行处理。优选地,若资源紧张的第二网络设备待其资源恢复为充裕后,其可通知第一网络设备I。
[0102]接着,在步骤S2中,第一网络设备I通过诸如socket通信方式,将所述http请求发送至所述目标第二网络设备2。
[0103]相应地,目标第二网络设备2通过诸如socket通信方式,接收所述第一网络设备I发送的待处理的http请求。
[0104]在步骤S3中,目标第二网络设备2获取所述http请求所对应的目标资源。具体地,在步骤S3中,目标第二网络设备2首先对所述http请求进行解析,以确定所述http请求所对应的资源状态类型信息;然后,根据所述资源状态类型信息,获取所述目标资源。在此,所述资源状态类型信息包括如:1)页面中的动态类型资源,如对于后缀为js、css, jsp等的资源为动态类型资源;2)页面中的静态类型资源,例如直接请求文件,的gif格式图片。在此,页面中的动态类型资源和静态类型资源可根据实际需求设定。
[0105]具体地,在步骤S3中,目标第二网络设备2首先对所述http请求进行解析,以确定所述http请求所对应的资源状态类型信息,若所述资源状态类型信息为动态类型资源,则在步骤S3中,目标第二网络设备2将所述http请求发送至对应的php-fpm模块,以由所述php-fpm模块获取所述目标资源。在此,所述php-fpm模块是现有技术中的PHPFastCGI管理器。
[0106]例如,对于http请求如http-request 1,在步骤S3中,目标第二网络设备2首先对该http请求进行解析,得到解析结果为:
[0107]GET/FileOp/filel0.js HTTP/1.1
[0108]Accept:氺/*
[0109]Referer: http://localhost:8080/File0p/
[0110]Accept-Language:zh-cn
[0111]User-Agent:MoziIla/4.0(compatible ;MSIE 6.0 ;ffindows NT 5.1 ;SV1)
[0112]Host:localhost:8080
[0113]Connect1n:Keep-Alive
[0114]Cookie:JSESS1NID = 9277F9B1D242ABB277A1E358C88833EC
[0115]在步骤S3中,目标第二网络设备2根据以上http请求解析结果发现该http请求直接请求js格式资源,其为动态类型资源,在步骤S3中,目标第二网络设备2可将该http请求发送至对应的php-fpm模块,以由php-fpm模块获取所述目标资源。
[0116]若所述资源状态类型信息为静态类型资源,则在步骤S3中,目标第二网络设备2可直接在目标第二网络设备2查找该静态类型资源的网络位置,从而获取所述目标资源。例如,对于http请求如http-request I,在步骤S3中,目标第二网络设备2首先对该http请求进行解析,得到解析结果为:
[0117]POST/sample.jspHTTP/1.1
[0118]Accept:1mage/gif.1mage/jpeg, */*
[0119]Accept-Language:zh-cn
[0120]Connect1n:Keep-Alive
[0121]Host:localhost
[0122]User-Agent:Mozila/4.0 (compatible ;MSIE5.01 ;ffindow NT5.0)
[0123]Accept-Encoding:gzip, deflate
[0124]username = j inqiao&password = 1234
[0125]在步骤S3中,目标第二网络设备2根据以上http请求解析结果发现该http请求直接请求gif格式图片,其为静态类型资源,在步骤S3中,目标第二网络设备2可直接在目标第二网络设备2查找该图片的网络位置,从而获取该图片。
[0126]本领域技术人员应能理解上述获取所述目标资源的方式仅为举例,其他现有的或今后可能出现的获取所述目标资源的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0127]接着,在步骤S4中,目标第二网络设备2通过诸如socket通信方式,将所述目标资源发送至所述第一网络设备I。
[0128]相应地,第一网络设备I通过诸如socket通信方式,接收所述目标第二网络设备2所发送的所述http请求所对应的目标资源。
[0129]第一网络设备I和目标第二网络设备2的各个步骤之间是持续不断工作的。具体地,在步骤SI中,第一网络设备I持续根据待处理的http请求中的相关信息项,结合所述第二网络设备的数量信息,从多个所述第二网络设备中确定处理所述http请求的目标第二网络设备2 ;在步骤S2中,第一网络设备I持续将所述http请求发送至所述目标第二网络设备2 ;相应地,目标第二网络设备2持续接收所述第一网络设备I发送的待处理的http请求;在步骤S3中,目标第二网络设备2持续获取所述http请求所对应的目标资源;在步骤S4中,目标第二网络设备2持续将所述目标资源发送至所述第一网络设备I ;相应地,第一网络设备I持续接收所述目标第二网络设备2所发送的所述http请求所对应的目标资源。在此,本领域技术人员应能理解所述“持续”是指第一网络设备I和目标第二网络设备2的各步骤之间分别不断地进行目标第二网络设备的确定、http请求的发送与接收、http请求对应的目标资源的获取、发送与接收,直至第一网络设备I在较长时间内停止获取待处理的http请求。
[0130]在一个优选实施例中(参考图2),该方法还包括步骤S5 (未示出)。具体地,在步骤S5中,第一网络设备I标记并存储所述目标第二网络设备的端口以及所述http请求所对应的请求号,以用于对所述http请求进行响应。
[0131]具体地,在步骤S5中,第一网络设备I标记并存储所述目标第二网络设备的端口以及所述http请求所对应的请求号,以用于对所述http请求进行响应。在此,所述请求号可以用数字、字符等形式表示,其唯一标识http请求,也即,每一 http请求具有唯一的请求号。
[0132]例如,对于http请求如http-requestl,假设在步骤SI中,第一网络设备I确定其对应的目标第二网络设备为workerl,则在步骤S5中,第一网络设备I首先可标记该http请求所对应的目标第二网络设备的端口,以及该http请求所对应的请求号,如将http-requestl标记为hrl,即http-requestl的请求号为hrl ;然后,在步骤S5中,第一网络设备I在请求标记池中记录该http请求的请求号,以用于对该http请求进行响应。
[0133]优选地,若所述http请求为多个且接收到至少一个http请求所对应的目标资源,该方法还包括步骤S6 (未示出)。具体地,在步骤S6中,第一网络设备I根据接收到其对应目标资源的http请求中发送相应http请求的目标资源的目标第二网络设备的端号,确定该http请求所对应的请求号,以根据该请求号对该http请求进行响应。
[0134]例如,假设第一网络设备I连续接收到来自浏览器的多个http请求,如http-requestl 至 http_request5,在步骤 SI 中,第一网络设备 I 先后确定 http-requestl至http_request5所对应的目标第二网络设备分别为workerl、worker3、worker Kworker2、worker2,而在步骤S5中,第一网络设备I事先已标记每一 http请求所对应的目标第二网络设备的端口,以及每一 http请求所对应的请求号,如http-requestl至http-request5的请求号分别为hrl、hr2、hr3、hr4、hr5,若在步骤S4中,第一网络设备I接收到了该多个http请求中http-requestl至http_request3的目标资源,也即在步骤S4中,第一网络设备I接收到来自第二网络设备workerl、worker3、workerl返回的目标资源,贝lJ在步骤S6中,第一网络设备I根据第二网络设备workerl、worker3、workerl的端口号,在请求标记池中得到与第二网络设备workerl、worker3、workerl的端口号分别相对应的请求号即hrl、hr2、hr3,以根据该等请求号对相应http请求进行响应,即分别对请求号为 hrl 的 http-requestl、请求号为 hr2 的 http_request2、请求号为 hr3 的 http_request3进行响应。
[0135]在此,本发明通过标记并存储每一 http请求所对应的目标第二网络设备的端口以及每一 http请求所对应的请求号,对于每一 http请求,建立了端口和请求号之间的映射关系,在具体实施例中,第一网络设备I轮询扫描已经标记的端口,也即执行读响应进程,且读响应为非阻塞的I/O模型,如发现有响应,便可根据具有响应的端口,从标记请求池中得到与该端口相对应的请求号,以便对相应http请求进行响应,从而,本发明中的第一网络设备I可进行高并发的处理多个http请求。
[0136]在另一优选实施例中(参考图2),该方法还包括步骤S7(未示出)。具体地,在步骤S7中,目标第二网络设备2对所述http请求进行预处理;其中,获取装置获取预处理后的所述http请求所对应的目标资源。
[0137]具体地,在步骤S7中,目标第二网络设备2对所述http请求进行预处理。优选地,所述预处理包括以下至少任一项:
[0138]-
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1