CN102088398B - Web并发事件处理方法及装置 - Google Patents
Web并发事件处理方法及装置 Download PDFInfo
- Publication number
- CN102088398B CN102088398B CN2009102520616A CN200910252061A CN102088398B CN 102088398 B CN102088398 B CN 102088398B CN 2009102520616 A CN2009102520616 A CN 2009102520616A CN 200910252061 A CN200910252061 A CN 200910252061A CN 102088398 B CN102088398 B CN 102088398B
- Authority
- CN
- China
- Prior art keywords
- event
- request
- web
- bag
- returning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及一种WEB并发事件处理方法及装置。其中,一种WEB并发事件处理方法,包括:接收并存储请求事件;根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器。当WEB页面产生大量并发请求时,通过对并发请求进行汇聚、打包后发送WEB服务器,减少了由于大量并发请求导致的阻塞问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种WEB并发事件处理方法及装置。
背景技术
随着WEB(World Wide Web,万维网)应用规模的扩大,富WEB应用大量出现,富WEB能够表现丰富的页面以及复杂的用户交互,且WEB应用中也大量引入了插件机制,分层机制,由此可能出现多个隔离的模块同时向后台发出请求的情况。
WEB中java实现异步通讯常使用AJAX(Asynchronous JavaScript andXML,异步JavaScript和XML)技术。以AJAX的长轮询(long-polling)方式说明WEB页面更新:用户点击WEB页面时,通过WEB客户端JavaScript调用XMLHttpRequest对象向WEB服务器发出HTTP请求;WEB服务器会阻塞请求直到有数据传递或超时才返回给WEB客户端;WEB客户端JavaScript响应处理函数根据WEB服务器返回的信息对WEB页面的显示进行更新,并在处理后,再次发出HTTP请求,重新建立连接。如图1所示,WEB客户端中各个业务模块分别自己向WEB服务器发起请求,当存在并发请求时,很容易导致阻塞。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
当WEB页面产生大量并发请求时,WEB客户端会产生阻塞,如果WEB客户端同时下发并发请求,WEB服务器会缓存请求到队列中,容易由于阻塞而导致请求被挂起,或长时间不返回,从而导致WEB页面显示不正确。WEB客户端每次请求都要重新建立链接,频繁的建立链接导致严重的性能问题以及大量的资源占用。
发明内容
本发明的实施例提供了一种WEB并发事件处理方法及装置,以解决并发事件导致的阻塞问题。
本发明的实施例提供一种WEB并发事件处理方法,包括:
接收并存储请求事件;
根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器。
本发明实施例还提供一种WEB并发事件处理装置,包括:
请求接收模块,用于接收请求事件;
请求缓存池,用于存储所述接收到的请求事件;
打包发送模块,用于根据预定策略将所述请求缓存池存储的请求事件打包成一个请求事件包发送给WEB服务器。
本发明的实施例还提供一种WEB并发事件处理方法,包括:
接收并存储对应WEB客户端发送的请求事件的返回值,所述返回值为返回事件;
根据预定策略将所述返回事件打包成返回事件包并返回给所述WEB客户端。
本发明的实施例还提供一种WEB并发事件处理装置,包括:
返回接收模块,用于接收至少一个对应WEB客户端发送的请求事件的返回值,所述返回值为返回事件;
返回值缓存池,用于存储所述接收到的返回事件;
打包发送模块,用于根据预定策略将所述返回事件打包成返回事件包并返回给所述WEB客户端。
由上述本发明的实施例提供的技术方案可以看出,当WEB客户端产生大量并发请求时,通过对并发请求进行打包后发送,将原来每个请求都直接访问WEB服务器,每个请求都向操作系统申请资源和时间的方式,改为将多个请求打包,汇聚为一个请求事件包后发送给WEB服务器,由此减少了WEB客户端对WEB服务器的访问量,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发请求导致的阻塞问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中并发事件处理示意图;
图2为本发明一实施例WEB并发事件处理方法流程示意图;
图3为本发明另一实施例WEB并发事件处理方法流程示意图;
图4为本发明另一实施例WEB并发事件处理方法流程示意图;
图5为本发明一实施例WEB并发事件处理装置构成示意图;
图6为本发明另一实施例WEB并发事件处理方法流程示意图;
图7为本发明另一实施例WEB并发事件处理装置构成示意图;
图8为本发明一实施例WEB并发事件处理方法中WEB通信模块应用场景示意图;
图9为本发明实施例另一WEB并发事件处理方法中服务器通信模块应用场景示意图;
图10为本发明实施例另一WEB并发事件处理方法中WEB通信模块应用场景示意图;
图11为本发明实施例另一WEB并发事件处理方法中服务器通信模块应用场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图2所示,本发明实施例提供一种WEB并发事件处理方法,包括:
21、接收并存储请求事件。
22、根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器。
本发明实施例WEB并发事件处理方法的执行主体可以是通信模块,请求为HTTP请求,通信模块可以与WEB客户端设置为一体,以下称为WEB通信模块。
在步骤21中,可以由WEB客户端中的功能实体发起请求,可以是一个功能实体发出多个请求,或者多个功能实体分别发出请求,对应的,WEB通信模块接收至少一个请求。功能实体可以理解为实现某种功能或业务的模块或代码,如WEB页面中获取WEB服务器时间的模块。
WEB通信模块可以将接收到的请求事件存储在请求缓存池中。可选的,请求缓存池为多个时,可以根据请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求的大小等等划分请求缓存池,不受限制。如,根据请求事件的优先级,将请求缓存池划分为不同优先级,用于存储不同优先级的请求事件。
可选的,请求缓存池内的请求事件超过缓存池上限时,可以根据预定策略进行溢出处理。预定策略可以包括:抛弃最老的事件,抛弃优先级最低的事件等。
在步骤22中,WEB通信模块根据预定策略将请求事件打包并发送给WEB服务器。预定策略可以包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个。并且,所述预定策略可以配置,可以实现按照用户的需求来打包。例如预定策略为请求事件的时间间隔和请求事件的数量,如每隔2秒获取一定数目的请求事件打包并发送给WEB服务器,或者,每隔4秒获取一定数目的请求事件打包并发送给WEB服务器。配合多个请求缓存池的划分,可以更佳的根据预定策略获取需要打包的请求事件。
WEB通信模块可以接收至少一个请求事件,当只有一个请求事件时,WEB通信模块也将请求事件打包,这样实现上的处理逻辑单一、统一,不需要做特殊处理。
可见,本发明实施例WEB并发事件处理方法,通过将WEB客户端对WEB服务器的调用请求进行了汇聚、打包后发送给WEB服务器,将原来每个请求都直接访问WEB服务器,每个请求都向操作系统申请资源和时间的方式,改为将多个请求打包,汇聚为一个请求事件包后发送给WEB服务器,由此减少了WEB客户端对WEB服务器的访问量,相应的也减少了对相关系统资源和时间的占用,从而可以减少由于大量并发请求导致的阻塞问题,且不需要WEB服务器特别的支持。
可选的,本发明实施例WEB并发事件处理方法中,WEB客户端中的功能实体发起的请求事件包括订阅请求事件时,可以为用户提供订阅业务,如图3所示,所述接收并存储请求事件包括:可以包括:
31、接收订阅请求事件及其对应的订阅策略。
32、根据订阅策略复制并存储订阅请求事件。
根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器包括:
33、根据预定策略将订阅请求事件与请求事件打成一个请求事件包发送给WEB服务器。
步骤31中,WEB通信模块接收某功能实体发送的订阅请求事件及其对应的订阅策略。订阅策略可以包括WEB通信模块复制并存储订阅请求事件的时间间隔。实现功能实体不需要反复发送订阅请求事件,由WEB通信模块按照时间间隔复制并存储订阅请求事件。订阅策略包括WEB通信模块复制并存储订阅请求事件的时间间隔之外,还可以包括订阅请求事件的优先级,等等,不受限制。
步骤32中,WEB通信模块根据订阅策略复制并存储订阅请求事件。如,WEB页面中某一个业务模块要定时获取WEB服务器的时间,那么该业务模块就可以向WEB通讯模块发送订阅请求事件,订阅请求事件为:获取WEB服务器时间,订阅策略为:复制并存储订阅请求事件的时间间隔为2秒钟,则WEB通讯模块按照订阅策略,每隔2秒将订阅请求事件复制一份,存储到请求缓存池中。这样,功能实体不需要反复发送订阅请求事件。如果订阅策略还包括订阅请求事件的优先级,则订阅请求事件可以被复制存储在对应优先级的请求缓存池中。
步骤33中,WEB通讯模块可以根据上述打成一个请求事件包的预定策略,将订阅请求事件与请求事件一同打成一个请求事件包发送给WEB服务器。当然,可以也将订阅请求事件打成一个请求事件包发送给WEB服务器。由WEB通信模块实现反复发送订阅请求事件。
进一步,在WEB通讯模块向WEB服务器发送请求事件包(包括订阅请求事件)之后,作为请求的返回值,WEB通讯模块可以从WEB服务器获取返回事件,具体可以如以下2种方式。
方式(1)、WEB通讯模块将请求事件打包成一个请求事件包发送给WEB服务器后,获取WEB服务器生成的返回事件包,对返回事件包进行解包得到请求事件对应的返回值。
可见,WEB通讯模块向WEB服务器发送打包请求后,作为请求的返回值,WEB通讯模块可以从WEB服务器获取请求事件对应的返回值。
或者,方式(2)、如图4所示,包括:
41、WEB通讯模块发送获取返回事件包的请求给WEB服务器。
42、WEB通讯模块获取WEB服务器生成的对应请求事件的返回事件包,对返回事件包进行解包得到请求事件对应的返回值。
可见,WEB通讯模块可以主动向WEB服务器发起一个请求以获取返回事件包,实现WEB通信模块从WEB服务器获取返回值。
本发明实施例WEB并发事件处理方法,避免WEB通讯模块将汇聚的请求发给WEB服务器后,等待汇聚包中所有的请求都完成才返回,以避免可能长时间的占用链接,导致新的阻塞。
可选的,本发明实施例WEB并发事件处理方法,在对返回事件包进行解包得到返回事件之后,还可以包括:
将返回事件存储在至少一个返回值缓存池中。
从返回值缓冲池中获取返回事件,分发给WEB客户端的相应功能实体。
相应功能实体可以理解为WEB客户端中发起请求的功能实体。
可选的,返回值缓存池内的返回事件超过缓存池上限时,可以根据预定策略进行溢出处理。预定策略可以包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
由上述本发明的实施例提供的技术方案可以看出,当WEB客户端产生大量并发请求时,通过对并发请求进行汇聚、打包后发送给WEB服务器,将原来每个请求都直接访问WEB服务器,每个请求都向操作系统中请资源和时间的方式,改为将多个请求打包,汇聚为一个请求事件包后发送给WEB服务器,由此减少了WEB客户端对WEB服务器的访问量,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发请求导致的阻塞问题。
实施例二
对应于上述实施例提供的WEB并发事件处理方法,如图5所示,本发明实施例提供一种WEB并发事件处理装置,包括:
请求接收模块51,用于接收请求事件。
请求缓存池52,用于存储接收到的请求事件。
打包发送模块53,用于根据预定策略将存储在请求缓存池52中的请求事件打包并发送给WEB服务器。
可选的,预定策略可以包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个,并且,预定策略可以配置,可以实现按照用户的需求来打包。如预定策略为请求事件的时间间隔和请求事件的数量,如每隔2秒获取一定数目的请求事件打包并发送给WEB服务器,或者,每隔4秒获取一定数目的请求事件打包并发送给WEB服务器。
可选的,本发明实施例WEB并发事件处理装置,还可以包括:
请求缓存池划分模块,用于请求缓存池52为多个时,根据请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求的大小等等划分请求缓存池52。
溢出处理模块,用于请求缓存池52内的请求事件超过缓存池上限时,可以根据预定策略进行溢出处理。预定策略可以包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
可选的,对应于上述实施例提供的WEB并发事件处理方法中,请求事件包括订阅请求事件时,请求接收模块51,还用于接收订阅请求事件及其对应的订阅策略;WEB通讯模块还可以包括:复制模块,用于根据订阅策略复制订阅请求事件,此时,请求缓存池52,还用于存储所述订阅请求事件;打包发送模块53,还用于根据预定策略将订阅请求事件与请求事件一同打打成一个请求事件包发送给WEB服务器。
订阅策略可以包括WEB通讯模块复制存储订阅请求事件的时间间隔,以及订阅请求事件的优先级,等等,不受限制。根据订阅请求事件的优先级,将订阅请求事件存储在对应优先级的请求缓存池52中。
可选的,对应于上述实施例提供的WEB并发事件处理方法中,WEB通讯模块向WEB服务器发送打包请求后,作为请求的返回值,WEB通讯模块可以从WEB服务器获取返回事件的方式(1),本发明实施例WEB并发事件处理装置,还可以包括:
返回接收模块,用于根据预定策略将存储在请求缓存池52中的请求事件打包并发送给WEB服务器后,获取WEB服务器生成的对应请求事件的返回事件包,对返回事件包进行解包得到请求事件对应的返回值。
或者,对应于上述实施例提供的WEB并发事件处理方法中,在WEB通讯模块向WEB服务器发送打包请求后,WEB通讯模块可以主动向WEB服务器发起一个请求以获取返回事件包的方式(2),本发明实施例WEB并发事件处理装置,还可以包括:
发送模块,用于发送获取返回事件包的请求给WEB服务器。
返回接收模块,用于获取WEB服务器生成的对应请求事件的返回事件包,对返回事件包进行解包得到请求事件对应的返回值。
可选的,本发明实施例WEB并发事件处理装置,还可以包括:
返回值缓存池,用于存储返回接收模块解包得到的返回事件。
返回值分发模块,用于从返回值缓冲池中获取返回事件,分发给WEB客户端的相应功能实体。
溢出处理模块,用于返回值缓存池内的返回事件超过缓存池上限时,根据预定策略进行溢出处理。预定策略包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
由上述本发明的实施例提供的技术方案可以看出,当WEB页面产生大量并发请求时,通过对并发请求进行汇聚、打包后发送给WEB服务器,减少了由于大量并发请求导致的阻塞问题。而且,减少了并发请求创建链接所占用的资源和时间。
实施例三
本发明实施例提供一种WEB客户端,其包括上述实施例二提供的WEB并发事件处理装置。
WEB客户端中的功能实体发起请求,WEB并发事件处理装置接收请求事件,WEB并发事件处理装置根据预定策略将请求事件打包成一个请求事件包并发送给WEB服务器。以及,WEB并发事件处理装置获取WEB服务器生成的返回事件包,对返回事件包进行解包得到请求事件对应的返回值,所述返回值对应WEB客户端发送的请求事件,WEB并发事件处理装置发送返回值给WEB客户端中的功能实体。
由上述本发明的实施例提供的技术方案可以看出,当WEB客户端产生大量并发请求时,通过对并发请求进行汇聚、打包后发送给WEB服务器,将原来每个请求都直接访问WEB服务器,每个请求都向操作系统申请资源和时间的方式,改为将多个请求打包,汇聚为一个请求事件包后发送给WEB服务器,由此减少了WEB客户端对WEB服务器的访问量,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发请求导致的阻塞问题。
实施例四
如图6所示,本发明实施例提供一种WEB并发事件处理方法,包括:
61、接收并存储对应WEB客户端发送的请求事件的返回值,所述返回值为返回事件。
62、根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
本发明实施例WEB并发事件处理方法的执行主体可以是通信模块,请求为HTTP请求,通信模块可以与WEB服务器设置为一体,以下称为服务器通信模块。WEB客户端可以理解为包含WEB通讯模块。
在步骤61中,WEB服务器的功能实体处理WEB客户端发送来的请求,并生成返回值,所述返回值为返回事件,服务器通信模块接收并存储所述返回事件。服务器通信模块可以将接收到的返回事件存储在返回值缓存池中。返回值缓存池为多个时,可以根据返回事件的优先级、返回事件的时间间隔、返回事件的数量或返回事件的大小为所述返回事件划分返回值缓存池。
返回值缓存池内的返回事件超过缓存池上限时,可以根据预定策略进行溢出处理。预定策略包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
在步骤62中,服务器通信模块根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
可见,当WEB服务器产生大量返回事件时,通过对返回事件进行汇聚、打包后返回,避免导致阻塞问题。
服务器通信模块的预定策略可以包括:返回事件的优先级、返回事件的时间间隔、返回事件的数量或返回事件的大小中的,等等,不受限制。
对应于上述实施例一、三中,WEB通讯模块向WEB服务器发送请求事件包,本发明实施例WEB并发事件处理方法,还可以包括:
接收WEB客户端发送的请求事件包,解包得到请求事件。
将解包得到的请求事件存储在请求缓存池中。
也就是,服务器通信模块接收WEB通讯模块发送的请求事件包,通过解包可以得到请求事件,可以将解包得到的请求事件存储在请求缓存池,服务器通信模块可以发送请求事件给WEB服务器中相应的功能实体。进而,功能实体处理WEB客户端发送来的请求事件,生成并存储请求事件对应的返回事件,服务器通信模块根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
如果,WEB客户端向服务器通信模块订阅后台事件,订阅请求事件为:获取WEB服务器时间,订阅策略为:每隔2秒钟,服务器通信模块可以接收WEB客户端发送的包含订阅请求事件的包,解包得到订阅请求事件。服务器通信模块生成并存储订阅请求事件对应的返回事件,服务器通信模块根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
可选的,请求缓存池内的请求事件超过缓存池上限时,可以根据预定策略进行溢出处理。预定策略包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
服务器通信模块接收到WEB客户端发送的请求事件包后,可以通过如下2种方式中的任一种实现返回请求事件对应的返回值。
方式(1)、服务器通讯模块接收到WEB客户端发送的请求事件包后,服务器通信模块根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
此方式下,服务器通讯模块准备返回事件包的时机为:由WEB客户端发送的请求事件包到达时,服务器通信模块才生成返回事件包。
方式(2)、服务器通信模块接收WEB客户端发送的获取返回事件包的请求;服务器通信模块根据预定策略将返回事件打包成返回事件包并返回给WEB客户端。
可见,本发明实施例提供一种WEB并发事件处理方法,在WEB客户端块将汇聚的请求发给WEB服务器后,不需要等待汇聚包中所有的请求都完成才返回,以避免可能长时间的占用链接,导致新的阻塞。
此方式下,WEB客户端主动向服务器通信模块发起一个请求以获取返回事件包,服务器通讯模块准备返回事件包的时机为:由WEB客户端获取返回事件包的请求到达时,服务器通信模块才生成返回事件包。
或者,上述2种方式中,服务器通讯模块准备返回事件包的时机可以为:服务器通讯模块接收并存储功能实体发送的返回事件之后,就按预定策略将返回事件打包,待接收到WEB客户端发送的获取返回事件包的请求或接收到WEB客户端发送的请求事件包时,直接将返回事件包交给所述WEB客户端返回。
如果,WEB客户端向服务器通信模块订阅后台事件,订阅请求事件为:获取WEB服务器时间,订阅策略为:每隔2秒钟,WEB客户端可以不断的从服务器通信模块获取订阅请求事件的返回值。
由上述本发明的实施例提供的技术方案可以看出,当WEB服务器产生大量并发返回事件时,通过对并发返回事件进行汇聚、打包后返回给WEB客户端,避免了原来每个请求的返回值都单独返回,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发返回事件导致的阻塞等问题。
实施例五
对应于上述实施例提供的WEB并发事件处理方法,本发明实施例提供一种WEB并发事件处理装置,如图7所示,包括:
返回接收模块71,用于接收对应WEB客户端发送的请求事件的返回值,所述返回值为返回事件。
返回值缓存池72,用于存储所述接收到的返回事件。
打包发送模块73,用于根据预定策略将所述返回事件打包成返回事件包并返回给WEB客户端。
上述预定策略可以包括:返回事件的优先级、返回事件的时间间隔、返回事件的数量或返回事件的大小中的至少一个,等等,不受限制。
可见,当WEB服务器产生大量返回事件时,通过对返回事件进行汇聚、打包后返回给WEB客户端,减少了由于大量并发请求导致的阻塞问题。
本发明实施例WEB并发事件处理装置,还可以包括:
请求接收模块,用于接收WEB客户端发送的请求事件包,解包得到请求事件。
请求缓存池,用于存储所述请求接收模块解包后得到请求事件。
溢出处理模块,用于所述请求缓存池内的请求事件超过缓存池上限时,根据预定策略进行溢出处理。预定策略可以包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
上述请求接收模块,还用于接收WEB客户端发送的请求事件及订阅请求事件的包。
对应于上述实施例四中,服务器通信模块接收到WEB客户端发送的请求事件包后,返回WEB客户端发送的请求事件的返回值的方式(1),请求接收模块接收到WEB客户端发送的请求事件包,打包发送模块73根据预定策略将所述返回事件打包成返回事件包并返回给WEB客户端。
对应上述实施例四中,服务器通信模块接收到WEB客户端发送的获取返回事件包的请求后,返回WEB客户端发送的请求事件的返回值的方式(2),本发明实施例WEB并发事件处理装置,还可以包括:
接收模块,用于接收WEB客户端发送的获取返回事件包的请求。
此时,返回接收模块71接收并存储返回事件之后,接收模块接收WEB客户端发送的获取返回事件包的请求,打包发送模块73根据预定策略将所述返回事件打包成返回事件包并返回给WEB客户端。
对应上述实施例四中,服务器通信模块准备返回事件包的时机,打包发送模块73,可以包括打包模块及发送模块:
打包模块:用于根据预定策略将返回事件打包成返回事件包。
发送模块:用于接收到WEB客户端发送的获取返回事件包的请求或接收到WEB客户端发送的请求事件包,将返回事件包返回给WEB客户端,在此不再赘述。
本发明实施例WEB并发事件处理装置述,还可以包括:
返回值缓存池划分模块,用于返回值缓存池72为多个时,根据返回事件的优先级、返回事件的时间间隔、返回事件的数量或返回事件的大小划分返回值缓存池72。
溢出处理模块,用于返回值缓存池72内的返回事件超过缓存池上限时,根据预定策略进行溢出处理。预定策略可以包括:抛弃最老的事件,抛弃优先级最低的事件,等等,不受限制。
由上述本发明的实施例提供的技术方案可以看出,当WEB服务器产生大量并发返回事件时,通过对并发返回事件进行汇聚、打包后返回给WEB客户端,避免了原来每个请求的返回值都单独返回,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发返回事件导致的阻塞等问题。
实施例六
本发明实施例提供一种WEB服务器,其至少包括上述实施例五提供的WEB并发事件处理装置。
WEB服务器,接收WEB客户端发送的请求事件包,解包得到请求事件,并发送请求事件给WEB服务器中相应的功能实体;以及,WEB服务器,接收并存储WEB服务器中功能实体发送的请求事件的返回事件,将返回事件打包成一个返回事件包,WEB客户端从WEB服务器获取返回事件包进而得到请求事件的返回值。
由上述本发明的实施例提供的技术方案可以看出,当WEB服务器产生大量并发返回事件时,通过对并发返回事件进行汇聚、打包后返回给WEB客户端,避免了原来每个请求的返回值都单独返回,相应的也减少了对相关系统资源和时间的占用,从而减少了由于大量并发返回事件导致的阻塞等问题。
实施例七
本发明实施例提供一种WEB并发事件处理系统,其包括上述实施例的WEB客户端以及WEB服务器。
由上述本发明的实施例提供的技术方案可以看出,当WEB客户端产生大量并发请求时,通过对并发请求进行汇聚、打包后发送给WEB服务器,减少了由于大量并发请求导致的阻塞问题。而且,减少了并发请求创建链接所占用的资源和时间。WEB通讯模块、服务器通讯模块可以视为通讯层,WEB客户端业务层向通讯层注册事件,由通讯层统一按一定策略到WEB服务器上将事件取回,不占用长连接,也不需要服务器特别的支持。
具体实施方式一
结合WEB通讯模块以及服务器通讯模块,说明本发明实施例WEB并发事件处理方法的具体流程。
本发明实施例WEB通讯模块可以包括发送部分以及接收部分。
发送部分可以包括:
1、请求接收模块:负责接收WEB页面中功能实体发出的原始请求,主要包含如下的接口:
1)packRequest:汇聚原始请求的接口,当WEB客户端的功能实体需要将发出的原始请求汇聚时,调用此接口。该接口接收到原始请求后调用请求缓冲池的pushEvent方法,将原始请求放到WEB通讯模块中的缓冲池中,之后根据打包发送模块的策略,将原始请求打包后发往服务器通讯模块。
2)subscribeEvent:订阅后台事件的接口,当WEB客户端的功能实体需要订阅后台事件时调用此接口,将订阅请求及其对应的订阅策略(例如每隔2秒)提交给请求接收模块,请求接收模块接收到订阅请求后,按订阅策略(例如每隔2秒)反复将订阅请求放到WEB通讯模块中的请求缓冲池中(调用请求缓冲池的pushEvent方法),之后根据打包发送模块的策略,将订阅请求事件和其它的原始请求事件一起打包后发往服务器通讯模块。
2、请求缓冲池:负责存储请求接收模块接收到的原始请求,可以包括如下接口:
1)pushEvent:将原始请求事件放到缓冲池中。
2)popEvent:从缓冲池中取出原始请求事件。
3)size:获取缓冲池中的原始请求事件数目。
4)clear:缓冲池的清理方法。
3、打包发送模块:按一定策略从请求缓冲池中获取原始请求(调用请求缓冲池的popEvent方法),打包,并发往WEB服务器,可以包括如下的接口或方法:
1)packEvent:将一个或多个原始请求打包为一个包。
2)sendRequest:向服务器通讯模块发送打包后的原始请求。
接收部分可以包括:
1、返回接收模块:负责发起请求,作为请求的返回值,返回值可以理解为返回事件,以从服务器通讯模块取回请求的返回事件包,并解包得到原始的返回事件,之后调用返回值缓冲池的pushEvent方法,将返回事件放到返回值缓冲池中,可以包括如下接口或方法:
1)getEventFromServer:从服务器通讯模块取回返回事件包。
2)unPackEvent:将返回事件包解开,得到原始的返回事件。
2、返回值缓冲池:负责存储返回接收模块解包后的返回事件,可以包括如下接口:
1)pushEvent:将返回事件放到缓冲池中。
2)popEvent:从缓冲池中取出返回事件。
3)size:获取缓冲池中的返回事件数目。
4)clear:缓冲池的清理方法。
3、返回值分发模块:从返回值缓冲池中获取返回事件(调用返回值缓冲池popEvent接口)并分发,可以包括如下的接口或方法:
1)dispatchEvent:将事件分发给接收者。
本发明实施例服务器通讯模块可以包括发送部分以及接收部分。
对应于WEB通讯模块的发送部分,服务器通讯模块的接收部分可以包括:
1、请求接收模块:负责接收WEB通讯模块发来的请求并解包,得到原始请求事件,之后调用请求缓冲池的pushEvent接口,将原始请求事件放到请求缓冲池中,可以包括如下接口或方法:
1)processRequest:负责接收WEB通讯模块发来的请求。
2)unPackEvent:将WEB通讯模块发来的经过打包的事件解包,得到原始请求事件。
2、请求缓冲池:负责存储请求接收模块解包后的原始请求,可以包括如下接口:
1)pushEvent:将原始请求事件放到缓冲池中。
2)popEvent:从缓冲池中取出原始请求事件。
3)size:获取缓冲池中的原始请求事件数目。
4)clear:缓冲池的清理方法。
3、请求分发模块:从请求缓冲池中获取原始请求。(调用请求缓冲池popEvent接口)并分发。可以包括如下的接口或方法:
1)dispatchRequest:将原始请求分发给接收者。
对应于WEB通讯模块的接收部分,服务器通讯模块的发送部分可以包括:
1、返回接收模块:负责接收Server中功能实体发出的返回事件,可以包括如下的接口:
1)pushReturnValue:发送返回事件的接口,当Server中的功能实体需要将返回事件发送给WEB客户端时,调用该接口。该接口调用服务器通讯模块中的返回值缓冲池中的pushEvent将接收到的返回事件放到返回值缓冲池中,之后根据服务器通讯模块中的打包发送模块的策略打包,当WEB通讯模块请求时交给WEB通讯模块。
2、返回值缓冲池:负责存储接口模块接收到的返回事件,可以包括如下接口:
1)pushEvent:将返回事件放到缓冲池中。
2)popEvent:从缓冲池中取出返回事件。
3)size:获取缓冲池中的返回事件数目。
4)clear:缓冲池的清理方法。
3、打包发送模块:按一定策略从缓冲池中获取返回事件(调用请求缓冲池popEvent接口),打包,当WEB通讯模块请求时将打包后的返回事件交给WEB通讯模块。可以包括如下接口:
1)getEvent:将多个返回事件打包成一个单一的包。
如图8所示,当WEB客户端中的功能实体发起请求时:
WEB通讯模块中的请求接收模块中的packRequest接口接收到WEB客户端中功能实体的请求后,将请求放到请求缓冲池中(调用请求缓冲池pushEvent接口),打包发送模块按一定策略从请求缓冲池中根据请求的优先级获取一定数目的请求(调用请求缓冲池popEvent接口,获取事件的数目可配置),之后调用packEvent接口,将这些请求打包后通过sendRequest接口,调用服务器通讯模块中请求接收模块的processRequest接口,一次发往服务器通讯模块。
如图9所示,服务器通讯模块的请求接收模块的processRequest接口来接收WEB通讯模块侧发来的被打包过的请求,该请求接收模块将WEB通讯模块的请求解包后(调用unPackEvent接口),得到原始请求,并将原始请求放到请求缓冲池中(调用请求缓冲池的pushEvent接口),请求分发模块从请求缓冲池中获取请求(调用请求缓冲池的popEvent接口),分发给请求接收者(调用dispatchRequest接口)。
由上述本发明的实施例提供的技术方案可以看出,其由于将WEB客户端对WEB服务器的调用进行了汇聚,打包,由此减少了由于大量并发请求导致的阻塞问题,减少了并发请求创建链接所占用的资源和时间。
而且,区别于“Comet”技术,“Comet”技术实现WEB服务器主动向WEB客户端推送事件的模式,其需要占用长链接,或是需要WEB服务器特别的支持。本发明实施例提供的技术方案,可以实现WEB客户端推模式:WEB通讯模块、服务器通讯模块可以视为通讯层,WEB客户端业务层向通讯层注册事件,由通讯层统一按一定策略到服务器上将事件取回,不占用长连接,也不需要服务器特别的支持。由于调用都是WEB客户端发起的,如果请求失败,可以方便的处理(如重新发起请求,等等),从而保证请求事件不丢失。当然本发明也可以模拟实现WEB服务器推送数据。
具体实施方式二
结合WEB通讯模块以及服务器通讯模块,说明本发明实施例WEB并发事件处理方法的具体流程。
WEB通讯模块以及服务器通讯模块,可以参考上述具体实施方式一,在此不作赘述。
如图10所示,当WEB客户端中的功能实体发起的请求返回时:
WEB服务器中的功能实体先把返回事件发给服务器通讯模块的请求接收模块中的pushReturnValue接口,该pushReturnValue接口将返回事件放到返回值缓冲池中(调用返回值缓冲池的pushEvent接口),当WEB通讯模块请求返回事件包时,打包发送模块按一定策略从返回值缓冲池中获得返回事件(调用返回值缓冲池的pushEvent接口)并打包,通过getEvent方法一次交给WEB通讯模块返回。或者,WEB通讯模块主动向服务器通讯模块发起一个特殊的请求(通过getEventFromServer发起)获取返回事件包,调用服务器通讯模块打包发送模块的getEvent接口,将返回事件包取回。
如图11所示,WEB通讯模块在获取返回事件包后,将获取到的返回事件包交给返回接收模块,该返回接收模块将请求事件包解包后(调用unPackEvent接口),得到返回事件,并将返回事件放到返回值缓冲池中(调用返回值缓冲池的pushEvent接口),返回值分发模块从返回值缓冲池中获取返回事件(调用返回值缓冲池的popEvent接口),通过dispatchEvent接口,将返回事件分发给接收者。
由上述本发明的实施例提供的技术方案可以看出,其由于将WEB客户端对WEB服务器的调用进行了汇聚,打包,由此减少了由于大量并发请求导致的阻塞问题,减少了并发请求创建链接所占用的资源和时间。
实现WEB客户端推模式:WEB通讯模块、服务器通讯模块可以视为通讯层,WEB客户端业务层向通讯层注册事件,由通讯层统一按一定策略到服务器上将事件取回,不占用长连接,也不需要服务器特别的支持。由于调用都是WEB客户端发起的,如果请求失败,可以方便的处理(如重新发起请求,等等),从而保证请求事件不丢失。当然本发明也可以模拟实现WEB服务器推送数据。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种WEB并发事件处理方法,其特征在于,包括:
接收并存储请求事件;
根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器,所述预定策略包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个;
其中,所述请求事件包括订阅请求事件,所述接收并存储请求事件包括:
接收订阅请求事件及其对应的订阅策略;
根据所述订阅策略复制并存储所述订阅请求事件;
所述根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器包括:
根据预定策略将所述订阅请求事件和其他的原始请求事件打成一个请求事件包发送给WEB服务器。
2.根据权利要求1所述的WEB并发事件处理方法,其特征在于,所述方法还包括:
将所述请求事件打包成一个请求事件包发送给WEB服务器后,获取所述WEB服务器生成的对应请求事件的返回事件包,对所述返回事件包进行解包得到请求事件对应的返回值;
或者,发送获取返回事件包的请求给所述WEB服务器,所述获取返回事件包的请求用以指示所述WEB服务器返回对应请求事件的返回事件包;
获取所述WEB服务器生成的对应请求事件的返回事件包,对所述返回事件包进行解包得到请求事件对应的返回值。
3.一种WEB并发事件处理装置,其特征在于,包括:
请求接收模块,用于接收请求事件;
请求缓存池,用于存储所述接收到的请求事件;
打包发送模块,用于根据预定策略将所述请求事件打包成一个请求事件包发送给WEB服务器,所述预定策略包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个;
其中,所述请求事件包括订阅请求事件,所述请求接收模块,进一步用于接收订阅请求事件及其对应的订阅策略,此时,所述装置还包括:复制模块,用于根据所述订阅策略复制所述订阅请求事件,所述请求缓存池,进一步用于存储所述订阅请求事件,所述打包发送模块,进一步用于根据预定策略将所述订阅请求事件和其他的原始请求事件打成一个请求事件包发送给WEB服务器。
4.根据权利要求3所述的WEB并发事件处理装置,其特征在于,所述装置还包括:
发送模块,用于发送获取返回事件包的请求给所述WEB服务器,所述获取返回事件包的请求用以指示所述WEB服务器返回对应请求事件的返回事件包;
返回接收模块,用于获取所述WEB服务器生成的对应请求事件的返回事件包,对所述返回事件包进行解包得到请求事件对应的返回值。
5.一种WEB并发事件处理方法,其特征在于,包括:
接收并存储对应WEB客户端发送的请求事件包的返回值,所述返回值为返回事件,所述请求事件包为根据预定策略将订阅请求事件和其他的原始请求事件打成的请求事件包;
根据预定策略将所述返回事件打包成返回事件包并返回给WEB客户端,所述预定策略包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个。
6.根据权利要求5所述的WEB并发事件处理方法,其特征在于,所述根据预定策略将所述返回事件打包成返回事件包并发送给WEB客户端,包括:
当接收到所述WEB客户端发送的请求事件包,根据预定策略将所述返回事件打包成返回事件包并返回给所述WEB客户端;
或者,当接收到所述WEB客户端发送的获取返回事件包的请求,根据预定策略将所述返回事件打包成返回事件包并返回给所述WEB客户端。
7.一种WEB并发事件处理装置,其特征在于,包括:
返回接收模块,用于接收对应WEB客户端发送的请求事件包的返回值,所述返回值为返回事件,所述请求事件包为根据预定策略将订阅请求事件和其他的原始请求事件打成的请求事件包;
返回值缓存池,用于存储所述接收到的返回事件;
打包发送模块,用于根据预定策略将所述返回事件打包成返回事件包并返回给WEB客户端,所述预定策略包括:请求事件的优先级、请求事件的时间间隔、请求事件的数量或请求事件的大小中的至少一个。
8.根据权利要求7所述的WEB并发事件处理装置,其特征在于,还包括接收模块,用于接收所述WEB客户端发送的获取返回事件包的请求,所述获取返回事件包的请求用以指示所述WEB服务器返回对应请求事件的返回事件包,所述打包发送模块在接收模块接收到所述WEB客户端发送的获取返回事件包的请求后,根据预定策略将所述返回事件打包成返回事件包并返回给所述WEB客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102520616A CN102088398B (zh) | 2009-12-08 | 2009-12-08 | Web并发事件处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102520616A CN102088398B (zh) | 2009-12-08 | 2009-12-08 | Web并发事件处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102088398A CN102088398A (zh) | 2011-06-08 |
CN102088398B true CN102088398B (zh) | 2013-03-20 |
Family
ID=44100019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102520616A Expired - Fee Related CN102088398B (zh) | 2009-12-08 | 2009-12-08 | Web并发事件处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102088398B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387206A (zh) * | 2011-10-20 | 2012-03-21 | 镇江睿泰信息科技有限公司 | 一种Web服务并发请求合成方法及系统 |
CN103685326A (zh) * | 2012-08-31 | 2014-03-26 | 盐城睿泰数字科技有限公司 | 一种web并发数据传输方法及web应用系统 |
CN103064898B (zh) * | 2012-12-17 | 2016-12-28 | 华为技术有限公司 | 事务加锁、解锁方法及装置 |
CN103281355A (zh) * | 2013-05-02 | 2013-09-04 | 同济大学 | 基于模糊决策的服务器推送方法 |
CN103442024B (zh) * | 2013-06-21 | 2017-04-05 | 中国科学院深圳先进技术研究院 | 一种智能移动终端与云端虚拟移动终端同步的系统和方法 |
CN103559239B (zh) * | 2013-10-25 | 2017-11-10 | 北京奇虎科技有限公司 | 图片的处理方法及系统和任务服务器 |
CN103595812A (zh) * | 2013-11-21 | 2014-02-19 | 北京京东尚科信息技术有限公司 | 一种发送Web服务消息的方法及装置 |
CN103645958A (zh) * | 2013-12-30 | 2014-03-19 | 广西科技大学 | 一种并发处理方法 |
CN106789615A (zh) * | 2017-02-04 | 2017-05-31 | 重庆优启科技有限公司 | 一种提高web处理并发请求的方法及使用其的服务站 |
CN112671728B (zh) * | 2020-12-14 | 2023-01-03 | 中科曙光国际信息产业有限公司 | 网络访问请求获取方法、装置、计算机设备及存储介质 |
CN115019450A (zh) * | 2022-06-01 | 2022-09-06 | 宁波小遛共享信息科技有限公司 | 共享车辆的使用控制方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904868A (zh) * | 2005-07-11 | 2007-01-31 | 商辉达股份有限公司 | 用于包化总线的组合包 |
CN101079895A (zh) * | 2006-12-21 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种快速访问Web网页的方法、系统及代理服务设备 |
CN101719929A (zh) * | 2009-11-20 | 2010-06-02 | 山东中创软件商用中间件股份有限公司 | 一种实现Web Service下实时数据传输的方法 |
-
2009
- 2009-12-08 CN CN2009102520616A patent/CN102088398B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904868A (zh) * | 2005-07-11 | 2007-01-31 | 商辉达股份有限公司 | 用于包化总线的组合包 |
CN101079895A (zh) * | 2006-12-21 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种快速访问Web网页的方法、系统及代理服务设备 |
CN101719929A (zh) * | 2009-11-20 | 2010-06-02 | 山东中创软件商用中间件股份有限公司 | 一种实现Web Service下实时数据传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102088398A (zh) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102088398B (zh) | Web并发事件处理方法及装置 | |
US20220116459A1 (en) | Method and system for reducing connections to a database | |
Fu et al. | A fair comparison of message queuing systems | |
CN108280080B (zh) | 一种数据同步方法、装置以及电子设备 | |
US20030182464A1 (en) | Management of message queues | |
US10038762B2 (en) | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern | |
US8135785B2 (en) | System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture | |
CN102955717A (zh) | 在分布式消息处理系统中的消息管理设备和方法 | |
CN102981911A (zh) | 一种分布式消息处理系统及其中的设备和方法 | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN105068817B (zh) | 将数据写入存储设备的方法及存储设备 | |
CN113360577A (zh) | 一种mpp数据库数据处理方法、装置、设备及存储介质 | |
CN105045789A (zh) | 一种游戏服务器数据库缓存方法及系统 | |
CN113630310A (zh) | 一种分布式高可用网关系统 | |
CN105144099B (zh) | 通信系统 | |
WO2021198803A1 (en) | Multi-level cache-mesh-system for multi-tenant serverless environments | |
US20070079077A1 (en) | System, method, and computer program product for shared memory queue | |
US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
CN102023929B (zh) | 基于乒乓缓存方式的数据缓存系统结构及其实现方法 | |
AU2010201275A1 (en) | A high performance and low latency messaging system | |
CN114553959A (zh) | 基于态势感知的云原生服务网格配置按需下发方法及应用 | |
CN107911317A (zh) | 一种报文调度方法及装置 | |
CN109426562A (zh) | 优先级加权轮转调度器 | |
CN110928944B (zh) | 一种数据处理方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20131208 |