一种基于事件驱动的高并发web流量产生器的制造方法_2

文档序号:9754306阅读:来源:国知局
aster进程有基于事件驱动的通信方式。每个worker进程会通过事件驱动机制建立和管理大量的HTTP连接,每个HTTP连接都与一个之对应的远程WEB服务器连接。每个连接上的网络1读写以及定时管理都是基于worker的事件驱动层进行注册,监听和分发处理。
[0029]本发明所涉及的WEB流量发生器的执行过程如下:
[0030]Dmaster进程通过读取配置文件来初始化用户管理模块,用户行为模块,负载均衡模块和进程管理模块;
[0031]2)master进程根据配置文件初始化一个位于控制层与数据层之间的事件驱动层,并根据进程管理模块注册用于与worker进程通信的1/0事件,并事件驱动层进行监听。然后通过f ork调用生成所有的worker进程。
[0032 ] 3)每个worker进程根据配置文件完成对连接池、缓存管理、流量统计、发送模块和接收模块的初始化,同时还初始化一个主要位于数据层与网络的事件驱动层,然后通过注册在事件驱动层的I/O事件告知master进程其已完成初始化。
[0033]4)master进程对每个模拟的WEB用户调用用户行为模块生成该用户的行为属性,然后根据用户行为属性中的定时属性将其以定时事件的形式注册到master中的事件驱动层。
[0034]5)master进程中的事件驱动层监听到某一个定时事件发生后,根据控制层中的进程管理模块以及负载均衡模块选择一个合适的worker进程,然后向该worker进程发送一个连接消息(主要包含用户的USER_ID,访问页面的PAGE_ID,有效时间??ΜΕ),并触发worker进程中事件驱动层的I/O读事件,以通知worker进程读取相关消息;
[0035]6)master进程通过用户管理模块和用户行为模块判定该用户是否活跃。如果该用户继续活跃,则执行第4)步;否则,由用户管理模块回收该用户资源。
[0036]7 )worker进程读取连接消息后,根据连接消息中的PAGE_ID从URL数据库中获取访问的页面及内嵌资源的URL集。然后从连接池中选取一个可用的连接资源,并初始化一个连接。同时,将该连接上的网络1/0事件和连接超时事件注册到事件驱动层,并发起到到WEB月艮务器的连接请求。
[0037]8)如果连接成功,worker进程中的事件驱动层将监听该连接有可读写的网络1/0事件。然后在其事件处理函数中调用发送模块封装HTTP请求消息,并将其发送出去,同时事件驱动层继续监听该连接上的网络1/0事件。
[0038]9)如果连接未能完成,将触发该连接上的定时事件,然后其定时处理函数将作相应的错误处理,并通知mas ter进程,然后由连接池回收连接资源。
[0039]10)当worker进程中的事件驱动层监听到该连接有可读的网络1/0事件时,其事件处理函数调用接收模块以及流量统计模块,进行数据的接收、解析、统计。如果数据没有接收完,事件驱动层将继续监听该连接的读事件;如果本次响应的数据接收完,且还存在未请求的资源,则执行第11)步,否则执行第12步;如果出错,将进行相应的错误处理。
[0040]11)当worker进程中的事件驱动层监听到该连接有可写的网络1/0事件时,其事件处理函数调用发送模块发送请求数据。如果还有请求数据未发生将继续监听该连接的可写事件;如果该请求数据发生完,事件驱动层将监听该连接上的可读事件;如果如果出错,将进行相应的错误处理。
[0041]12)当一个活跃HTTP连接的数据交互完成后,将源注销其在事件驱动层的监听事件并释放连接占有的资源,然后该连接由连接池进行回收,以备下次使用。
[0042]与现有技术相比,本发明中的控制层与数据层没有直接的调用关系,而是基于事件驱动层对特定的事件进行异步处理,从而提高了 WEB流量产生器的用户模拟能力。同时,本发明在数据层和网络之间也基于事件驱动层,将同步的网络通信转化为异步的网络1/0事件,提高了 WEB流量发生器并发执行性能,减小了进程或线程的切换开销,能够有效地提高活跃HTTP连接的高并发能力。
[0043]以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
【主权项】
1.一种基于事件驱动的高并发WEB流量产生器,其特征在于,包括:包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层负责WEB用户模拟和管理以及工作子进程族的管理和负载调度;数据层主要负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述事件驱动层主要负责定时事件、I/O读写事件、信号事件的注册、监听和分发处理。2.根据权利要求1所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块,其中用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块用于实现基于轮询机制和基于目标服务器ip地址机制的多工作进程间的负载均衡。3.根据权利要求1所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。4.根据权利要求1或2或3所述的基于事件驱动的高并发WEB流量产生器,其特征在于采用master进程加多个worker进程的实现方式,其中master进程实现控制层和第一事件驱动层;所有worker进程都是master的子进程,并实现数据层和第二事件驱动层;此外,这些worker进程彼此相互隔离,仅各自与master进程之间有基于事件驱动层的通信通道。5.根据权利要求1或2或3或4所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述master进程中的第一事件驱动层的监听模块负责对控制层中模拟的大量WEB用户的用户行为过程进行定时监听,监听过程如下: 1)控制层对每一模拟的WEB用户,通过调用用户行为模块获得该用户进入下一个行为动作的时间值time,并设置用户下一步的行为函数handler; 2)根据time值,控制层通过调用第一事件驱动层中的注册模块进行定时事件的注册,并交由监听模块负责事件的监听; 3)当监听到该定时事件发生时,通过分发模块进行分发处理,然后调用该用户之前设置的行为函数hand Ier ; 4)在用户行为行为函数handler中,首先根据用户行为模块构造一个连接消息,将具体的数据交互任务交由数据层处理; 5)然后根据用户管理模块以及用户行为模块得到该用户的下一个行为动作; 6)如果用户的下一个动作为退出,则释放该用户占用的资源; 7)否则,跳转到第I)步。
【专利摘要】本发明请求保护一种基于事件驱动的高并发WEB流量产生器,属于网络软件技术领域。该WEB流量产生器包括控制层,数据层和两个事件驱动层。其中控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块;数据层包含DNS查询模块,缓存管理模块,流量统计模块,发送模块和接收模块;事件驱动层包含事件的注册模块,监听模块和分发模块。本发明在控制层与数据层以及数据层与网络之间引入事件驱动层,用于解决层内大量的定时管理以及层间的异步通信问题。本发明提高了WEB流量产生器的用户模拟能力。同时,提高了WEB流量发生器并发执行性能,减小了进程或线程的切换开销,能够有效地提高HTTP连接的高并发处理能力。
【IPC分类】H04L29/08, H04L12/24
【公开号】CN105515837
【申请号】CN201510849671
【发明人】曾帅, 唐小军, 殷志坚, 高宗彬, 赵国锋, 唐红, 张毅, 徐川, 刘媛妮, 段洁
【申请人】重庆邮电大学
【公开日】2016年4月20日
【申请日】2015年11月27日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1