1.一种基于事件驱动的高并发WEB流量产生器,其特征在于,包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层负责WEB用户模拟和管理以及工作子进程族的管理和负载调度;数据层负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述第一事件驱动层和第二事件驱动层负责定时事件、I/O读写事件、信号事件的注册、监听和分发处理;采用master进程加多个worker进程的实现方式,其中master进程实现控制层和第一事件驱动层;所有worker进程都是master进程的子进程,并实现数据层和第二事件驱动层;此外,这些worker进程彼此相互隔离,仅各自与master进程之间有基于事件驱动层的通信通道。
2.根据权利要求1所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块,其中用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块用于实现基于轮询机制和基于目标服务器ip地址机制的多工作进程间的负载均衡。
3.根据权利要求1所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。
4.根据权利要求2所述的基于事件驱动的高并发WEB流量产生器,其特征在于,所述master进程中的第一事件驱动层的监听模块负责对控制层中模拟的大量WEB用户的用户行为过程进行定时监听,监听过程如下:
1)控制层对每一模拟的WEB用户,通过调用用户行为模块获得该用户进入下一个行为动作的时间值,并设置用户下一步的行为函数handler;
2)根据时间值,控制层通过调用第一事件驱动层中的注册模块进行定时事件的注册,并交由监听模块负责事件的监听;
3)当监听到该定时事件发生时,通过分发模块进行分发处理,然后调用该用户之前设置的行为函数handler;
4)在行为函数handler中,首先根据用户行为模块构造一个连接消息,将具体的数据交互任务交由数据层处理;
5)然后根据用户管理模块以及用户行为模块得到该用户的下一个行为动作;
6)如果用户的下一个动作为退出,则释放该用户占用的资源;
7)否则,跳转到第1)步。