处理超文本传输协议请求的方法及装置制造方法

文档序号:7988230阅读:184来源:国知局
处理超文本传输协议请求的方法及装置制造方法
【专利摘要】本发明公开了一种处理超文本传输协议请求的方法及装置,属于网络【技术领域】。方法包括:接收多个超文本传输协议HTTP请求;获取与每个HTTP请求相对应的网络数据流,并对每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;得到解析数据后,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用对应的处理线程对其处理队列中的解析数据进行处理。本发明通过将HTTP请求对应的解析数据分发至对应处理线程的处理队列,并调用该处理线程对其处理队列中的解析数据进行处理,可实现在HTTP请求的数量大于开启的处理线程的数量时,顺畅地对解析数据进行处理,处理线程数量不会随HTTP请求的数量增长而线性增长,从而降低系统开销。
【专利说明】处理超文本传输协议请求的方法及装置
【技术领域】
[0001]本发明涉及网络【技术领域】,特别涉及一种处理超文本传输协议请求的方法及装置。
【背景技术】
[0002]随着互联网技术的蓬勃发展,互联网上的应用日趋丰富,用户可通过安装在应用客户端的各种应用快捷地获取信息。在应用客户端与应用服务器交互的过程中,应用客户端会向应用服务器发送HTTP (Hyper text Trans port Protocol,超文本传输协议)请求,而当应用服务器端接收到大量的HTTP请求时,为保证应用客户端与应用服务器之间的信息能够顺利传输,如何对数目众多的HTTP请求进行处理,成为了一个亟待解决的问题。
[0003]现有技术中,应用服务器在收到大量的HTTP请求后,会开启大量的线程对HTTP请求同步进行处理,即当接收到的HTTP请求数量增加时,开启的线程数量也随之增加,直至可以处理所有HTTP请求。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]由于现有技术中应用服务器对接收到的HTTP请求进行同步处理,所以当接收到的HTTP请求数量大幅度攀升时,开启的线程数量也随之攀升,而不断攀升的线程数量最终会耗尽应用服务器的资源,导致应用服务器崩溃,从而使应用客户端与应用服务器之间的信息传输中断。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种处理超文本传输协议请求的方法及装置。所述技术方案如下:
[0007]一方面,提供了一种处理超文本传输协议请求的方法,所述方法包括:
[0008]接收多个HTTP请求,所述HTTP请求的数量大于开启的处理线程的数量;
[0009]获取与每个HTTP请求相对应的网络数据流,并对每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;
[0010]得到解析数据后,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理。
[0011]进一步地,所述将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括:
[0012]对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间;
[0013]如果所述处理队列具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中。
[0014]进一步地,所述判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间之后,还包括:[0015]如果所述处理队列未具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;或,
[0016]如果所述处理队列未具有空闲空间,则待所述处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中;或,
[0017]如果所述处理队列未具有空闲空间,则开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至所述新的处理线程的处理队列中。
[0018] 进一步地,所述将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括:
[0019]根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。
[0020]进一步地,所述调用所述对应的处理线程对其处理队列中的解析数据进行处理,包括:
[0021]调用所述对应的处理线程按照先进先出的顺序对处理队列中的解析数据进行处理。
[0022]另一方面,提供了一种处理超文本传输协议请求的装置,所述装置包括:
[0023]接收模块,用于接收多个HTTP请求,所述HTTP请求的数量大于开启的处理线程的
数量;
[0024]获取模块,用于获取与所述接收模块接收到的每个HTTP请求相对应的网络数据流;
[0025]解析模块,用于对所述获取模块获取到的每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;
[0026]分发模块,用于在得到解析数据后,将所述解析模块解析出的每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中;
[0027]处理模块,用于调用所述对应的处理线程对其处理队列中所述分发模块分发的解析数据进行处理。
[0028]进一步地,所述分发模块,包括:
[0029]判断单元,用于对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间;
[0030]分发单元,用于如果所述判断单元判断所述处理队列具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中。
[0031]进一步地,所述分发单元,还用于如果所述判断单元判断所述处理队列未具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;或,
[0032]如果所述判断单元判断所述处理队列未具有空闲空间,则待所述处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中;或,
[0033]如果所述判断单元判断所述处理队列未具有空闲空间,则开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至所述新的处理线程的处理队列中。
[0034]进一步地,所述分发模块,用于根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。[0035]进一步地,所述处理模块,用于调用所述对应的处理线程按照先进先出的顺序对处理队列中所述分发模块分发的解析数据进行处理。
[0036]本发明实施例提供的技术方案带来的有益效果是:
[0037]通过将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理,可实现在HTTP请求的数量大于开启的处理线程的数量时,稳定顺畅地对HTTP请求对应的解析数据进行处理,处理线程数量不会随着HTTP请求的数量增长而线性增长,从而降低了系统的开销,提高了系统的承载能力。
【专利附图】

【附图说明】
[0038]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1是本发明实施例一提供的处理超文本传输协议请求的方法流程图;
[0040]图2是本发明实施例二提供的处理超文本传输协议请求的方法流程图;
[0041]图3是本发明实施例三提供的处理超文本传输协议请求的装置的结构示意图;
[0042]图4是本发明实施例三 提供的分发模块的内部结构示意图。
【具体实施方式】
[0043]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0044]实施例一
[0045]本发明实施例提供了一种处理超文本传输协议请求的方法,参见图1,方法流程包括:
[0046]步骤101:接收多个HTTP请求,HTTP请求的数量大于开启的处理线程的数量;
[0047]步骤102:获取与每个HTTP请求相对应的网络数据流,并对每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;
[0048]步骤103:得到解析数据后,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用对应的处理线程对其处理队列中的解析数据进行处理。
[0049]进一步地,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括:
[0050]对于任一 HTTP请求对应的解析数据,判断任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间;
[0051]如果处理队列具有空闲空间,则将任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中。
[0052]进一步地,判断任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间之后,还包括:
[0053]如果处理队列未具有空闲空间,则将任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;或,
[0054]如果处理队列未具有空闲空间,则待处理队列具有空闲空间后,再将任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中;或,
[0055]如果处理队列未具有空闲空间,则开启新的处理线程,将任一 HTTP请求对应的解析数据分发至新的处理线程的处理队列中。
[0056]进一步地,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括:
[0057]根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。
[0058]进一步地,调用对应的处理线程对其处理队列中的解析数据进行处理,包括:
[0059]调用对应的处理线程按照先进先出的顺序对处理队列中的解析数据进行处理。
[0060]本实施例提供的方法,通过将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理,可实现在HTTP请求的数量大于开启的处理线程的数量时,稳定顺畅地对HTTP请求对应的解析数据进行处理,处理线程数量不会随着HTTP请求的数量增长而线性增长,从而降低了系统的开销,提高了系统的承载能力。进一步地,调用对应的处理线程按照先进先出的顺序对处理队列中的解析数 据进行处理,使得处理线程处理HTTP请求对应的解析数据的方式更加有序及更加规则化。
[0061]实施例二
[0062]本发明实施例提供了一种处理超文本传输协议请求的方法,为了便于说明,以客户端A发送HTTP请求,处理超文本传输协议请求的装置B接收HTTP请求并对其进行处理为例,对本实施例提供的方法进行详细说明。参见图2,方法流程包括:
[0063]步骤201:接收多个HTTP请求,HTTP请求的数量大于开启的处理线程的数量;
[0064]具体地,接收HTTP请求的具体实现方式可依据现有的接收方式实现,例如,一同接收多个HTTP请求,并将多个HTTP请求缓存至存储介质中,本实施例对此不作具体限定。其中,存储介质具体可为只读寄存器,当然,存储介质的类型,除上述只读寄存器外,还可以为其他类型的存储介质,例如,闪存或硬盘等等,本实施例对存储介质的类型不进行具体限定。
[0065]针对接收的HTTP请求的数量大于开启的处理线程的数量的情况,本实施例在后续步骤中对处理HTTP请求的过程进行了详细阐述;而针对接收的HTTP请求的数量小于或等于开启的处理线程的数量的情况,处理超文本传输协议请求的装置B可实现同时处理上述全部HTTP请求,与同步处理HTTP请求的方法一致,此处不再赘述。
[0066]进一步地,在接收多个HTTP请求之前,本实施例提供的方法还包括,处理超文本传输协议请求的装置B与客户端A建立TCP (Transmission Control Protocol,传输控制协议)连接的过程。该建立TCP连接的具体过程为:首先客户端A向处理超文本传输协议请求的装置B发送TCP连接请求,并进入连接请求发送状态,等待处理超文本传输协议请求的装置B确认;处理超文本传输协议请求的装置B接收到客户端A发送的TCP连接请求后,先对该TCP连接请求进行确认,之后根据该TCP连接请求建立及初始化一个连接实例,并向客户端A返回一个新的TCP连接请求,且同时该处理超文本传输协议请求的装置B进入连接请求收到状态;客户端A在接收到处理超文本传输协议请求的装置B返回的TCP连接请求后,向处理超文本传输协议请求的装置B发送确认消息,该确认消息发送完毕后,处理超文本传输协议请求的装置B与客户端A便同时进入建立TCP连接状态,完成三次握手。在完成三次握手之后,处理超文本传输协议请求的装置B与客户端A之间便可进行数据传输。
[0067]步骤202:获取与每个HTTP请求相对应的网络数据流,并对每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;
[0068]具体地,在接收到多个HTTP请求后,便可获取与每个HTTP请求相对应的网络数据流。其中,获取与每个HTTP请求相对应的网络数据流的具体实现方式可依据现有的获取方式实现,例如,同时获取与每个HTTP请求相对应的网络数据流,并将上述每个HTTP请求对应的网络数据流缓存至自身的存储空间,本实施例对此不作具体限定。在获取到与HTTP请求相对应的网络数据流之后,对上述每个HTTP请求对应的网络数据流进行解析。解析每个HTTP请求对应的网络数据流的具体实现方式可依据现有的解析方式实现,例如,对每个HTTP请求对应的网络数据流中的关键数据进行提取和分析,并生成解析数据,本实施例对解析网络数据流的方式同样不作具体限定。
[0069]步骤203:对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间;如果处理队列具有空闲空间,则执行步骤204 ;如果处理队列未具有空闲空间,则执行步骤205至步骤207中的任一步骤;
[0070]在每个处理线程开启时,会相应的为该处理线程创建一个与之相对应的处理队列。针对步骤203,为了明确具体将某一 HTTP请求对应的解析数据分发给哪一个处理线程进行处理,本实施例提供的方法还包括根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析 数据分发至对应的处理线程的处理队列中的步骤。由于每个HTTP请求对应的解析数据的哈希值不同,因此,可根据哈希值将多个HTTP请求对应的解析数据分发给不同的处理线程,而不同的处理线程则对应不同的哈希值或对应处于某一范围内的哈希值。其中,除根据HTTP请求对应的解析数据的哈希值确定HTTP请求对应的解析数据的处理线程外,还可以采用其他方式确定具体将某一 HTTP请求对应的解析数据分发给哪一个处理线程进行处理,本实施例对此不进行具体限定。
[0071]步骤204:将所述任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中;
[0072]具体地,将所述任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中的具体实现方式可依据现有的分发方式实现,例如,将所述任一 HTTP请求对应的解析数据进行压缩后分发至处理队列的空闲空间中,本实施例对此不进行具体限定。其中,处理队列具体可为数据缓冲区等等,本实施例对此同样不进行具体限定。
[0073]进一步地,在将HTTP请求对应的解析数据分发至处理队列的空闲空间后,便可直接执行下述步骤208调用对应的处理线程对其进行处理。
[0074]步骤205:将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;
[0075]其中,将该HTTP请求对应的解析数据分发至其他具有空闲空间的处理线程的处理队列中的具体实现方式可依据现有的分发方式实现,例如,将该HTTP请求对应的解析数据进行压缩后分发至其他具有空闲空间的处理线程的处理队列中,本实施例对此不进行具体限定。其中,其他处理线程的处理队列具体可为数据缓冲区等等,本实施例对此同样不进行具体限定。
[0076]进一步地,在将HTTP请求对应的解析数据分发至其他处理线程的处理队列中后,便可直接执行下述步骤208调用对应的处理线程对其进行处理。
[0077]步骤206:待处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中;
[0078]针对该步骤,将HTTP请求对应的解析数据分发至处理队列的空闲空间中的具体实现方式可依据现有的分发方式实现,例如,将该HTTP请求对应的解析数据进行压缩后分发至处理队列的空闲空间中,本实施例对此不进行具体限定。其中,处理队列具体可为数据缓冲区等等,本实施例对此同样不进行具体限定。
[0079]进一步地,在将HTTP请求对应的解析数据分发至处理队列的空闲空间后,便可直接执行下述步骤208调用对应的处理线程对其进行处理。
[0080] 步骤207:开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至新的处理线程的处理队列中;
[0081]具体地,如果HTTP请求对应的解析数据待分发至的处理线程的处理队列未具有空闲空间且开启的处理线程数量未达到预设数目,则可开启新的处理线程,并将该HTTP请求对应的解析数据分发至新的处理线程的处理队列中。其中,将该HTTP请求对应的解析数据分发至新的处理线程的处理队列中的具体实现方式可依据现有的分发方式实现,例如,将该HTTP请求对应的解析数据进行压缩后分发至新的处理线程的处理队列中,本实施例对此不进行具体限定。其中,新的处理线程的处理队列具体可为数据缓冲区等等,本实施例对此同样不进行具体限定;预设数目的大小具体可为50个,当然预设数目除上述数值外,还可为其他数值,例如,100个等等,本实施例预设数目的大小也不进行具体限定。
[0082]进一步地,在将HTTP请求对应的解析数据分发至新的处理线程的处理队列中后,便可直接执行步骤208调用对应的处理线程对其进行处理。
[0083]步骤208:调用对应的处理线程对其处理队列中的解析数据进行处理。
[0084]针对该步骤,在将任一 HTTP请求对应的解析数据分发至对应的处理线程的处理队列中后,便可调用对应的处理线程对其进行处理;而如果对应的处理线程的处理队列中此时还存储了其他HTTP请求对应的解析数据,则按照先进先出的顺序对存储在该处理队列中的解析数据依次进行处理。其中,除按照先进先出的顺序对存储在处理队列中的解析数据进行处理之外,还可以按照其他方式对解析数据进行处理,例如,按照预设优先级对解析数据进行处理,本实施例对此不作具体限定。
[0085]进一步地,在通过软件编程实现本实施例提供的方法时,接收客户端A发送的TCP连接可由process Accept O函数实现,初始化及建立与该TCP连接对应的连接实例可由constructor O函数及regist Http Connection O函数实现,接收HTTP请求及对应的网络数据流可由process Receive O及receive DataO函数实现,解析HTTP请求对应的网络数据流可由parser O函数实现,将HTTP请求对应的解析数据分发至对应的处理线程的处理队列及调用对应的处理线程对HTTP请求对应的解析数据可由dispatch O函数及receiveHandlerO函数实现。除此之外,上述各个过程还可以采用其他函数实现,本实施例对此不作具体限定。[0086]本实施例提供的方法,通过将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理,可实现在HTTP请求的数量大于开启的处理线程的数量时,稳定顺畅地对HTTP请求对应的解析数据进行处理,处理线程数量不会随着HTTP请求的数量增长而线性增长,从而降低了系统的开销,提高了系统的承载能力。进一步地,调用对应的处理线程按照先进先出的顺序对处理队列中的解析数据进行处理,使得处理线程处理HTTP请求对应的解析数据的方式更加有序及更加规则化。
[0087]实施例三
[0088]本发明实施例提供了一种处理超文本传输协议请求的装置,用于执行上述实施例一或实施例二所提供的方法,参见图3,该装置包括:
[0089]接收模块31,用于接收多个HTTP请求,HTTP请求的数量大于开启的处理线程的数量;[0090]获取模块32,用于获取与接收模块31接收到的每个HTTP请求相对应的网络数据流;
[0091]解析模块33,用于对获取模块32获取到的每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据;
[0092]分发模块34,用于在得到解析数据后,将解析模块33解析出的每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中;
[0093]处理模块35,用于调用对应的处理线程对其处理队列中分发模块34分发的解析数据进行处理。
[0094]进一步地,参见图4,分发模块34,包括:
[0095]判断单元341,用于对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间;
[0096]分发单元342,用于如果判断单元341判断处理队列具有空闲空间,则将所述任一HTTP请求对应的解析数据分发至处理队列的空闲空间中。
[0097]进一步地,分发单元342,还用于如果判断单元341判断处理队列未具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;
[0098]或,
[0099]如果判断单元341判断处理队列未具有空闲空间,则待处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至处理队列的空闲空间中;
[0100]或,
[0101]如果判断单元341判断处理队列未具有空闲空间,则开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至新的处理线程的处理队列中。
[0102]进一步地,分发模块34,用于根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。
[0103]进一步地,处理模块35,用于调用对应的处理线程按照先进先出的顺序对处理队列中分发模块34分发的解析数据进行处理。
[0104]综上所述,本发明实施例提供的装置,通过将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理,可实现在HTTP请求的数量大于开启的处理线程的数量时,稳定顺畅地对HTTP请求对应的解析数据进行处理,处理线程数量不会随着HTTP请求的数量增长而线性增长,从而降低了系统的开销,提高了系统的承载能力。进一步地,调用对应的处理线程按照先进先出的顺序对处理队列中的解析数据进行处理,使得处理线程处理HTTP请求对应的解析数据的方式更加有序及更加规则化。
[0105]需要说明的是:上述实施例提供的处理超文本传输协议请求的装置在处理超文本传输协议请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理超文本传输协议请求的装置与处理超文本传输协议请求的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0106]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0107]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0108]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任 何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种处理超文本传输协议请求的方法,其特征在于,所述方法包括: 接收多个超文本传输协议HTTP请求,所述HTTP请求的数量大于开启的处理线程的数量; 获取与每个HTTP请求相对应的网络数据流,并对每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据; 得到解析数据后,将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,并调用所述对应的处理线程对其处理队列中的解析数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括: 对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间; 如果所述处理队列具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中。
3.根据权利要求2所述的方法,其特征在于,所述判断所述任一HTTP请求对应的解析数据待分发至的 处理线程的处理队列是否具有空闲空间之后,还包括: 如果所述处理队列未具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;或, 如果所述处理队列未具有空闲空间,则待所述处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中;或, 如果所述处理队列未具有空闲空间,则开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至所述新的处理线程的处理队列中。
4.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中,包括: 根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。
5.根据权利要求1至3中任一权利要求所述的方法,其特征在于,所述调用所述对应的处理线程对其处理队列中的解析数据进行处理,包括: 调用所述对应的处理线程按照先进先出的顺序对处理队列中的解析数据进行处理。
6.一种处理超文本传输协议请求的装置,其特征在于,所述装置包括: 接收模块,用于接收多个超文本传输协议HTTP请求,所述HTTP请求的数量大于开启的处理线程的数量; 获取模块,用于获取与所述接收模块接收到的每个HTTP请求相对应的网络数据流;解析模块,用于对所述获取模块获取到的每个HTTP请求对应的网络数据流进行解析,得到与每个HTTP请求相对应的解析数据; 分发模块,用于在得到解析数据后,将所述解析模块解析出的每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中; 处理模块,用于调用所述对应的处理线程对其处理队列中所述分发模块分发的解析数据进行处理。
7.根据权利要求6所述的装置,其特征在于,所述分发模块,包括:判断单元,用于对于任一 HTTP请求对应的解析数据,判断所述任一 HTTP请求对应的解析数据待分发至的处理线程的处理队列是否具有空闲空间; 分发单元,用于如果所述判断单元判断所述处理队列具有空闲空间,则将所述任一HTTP请求对应的解析数据分发至所述处理队列的空闲空间中。
8.根据权利要求7所述的装置,其特征在于,所述分发单元,还用于如果所述判断单元判断所述处理队列未具有空闲空间,则将所述任一 HTTP请求对应的解析数据分发至其他处理线程的处理队列中;或, 如果所述判断单元判断所述处理队列未具有空闲空间,则待所述处理队列具有空闲空间后,再将所述任一 HTTP请求对应的解析数据分发至所述处理队列的空闲空间中;或, 如果所述判断单元判断所述处理队列未具有空闲空间,则开启新的处理线程,将所述任一 HTTP请求对应的解析数据分发至所述新的处理线程的处理队列中。
9.根据权利要求6至8中任一权利要求所述的装置,其特征在于,所述分发模块,用于根据每个HTTP请求对应的解析数据的哈希值将每个HTTP请求对应的解析数据分发至对应的处理线程的处理队列中。
10.根据权利要求6至8中任一权利要求所述的装置,其特征在于,所述处理模块,用于调用所述对应的处理线程按照先进先出的顺序对处理队列中所述分发模块分发的解析数据进行处理。
【文档编号】H04L29/08GK103905484SQ201210576014
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】王延维 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1