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

文档序号:9754306阅读:274来源:国知局
一种基于事件驱动的高并发web流量产生器的制造方法
【技术领域】
[0001]本发明属于网络软件技术领域。涉及一种WEB流量产生器,尤其是一种基于事件驱动的高并发WEB流量产生器。
【背景技术】
[0002]随着互联网规模的不断扩大以及基于互联网应用的多样性,现有互联网的局限性日益突出。为解决当前互联网存在的问题,目前关于未来网络的相关研究已成为多国国家战略的一部分。很多国家或科研机构已经建立起用于未来网络研究的实验网络。网络流量作为互联网内在的重要组成部分,对于实验网同样如此。因此如何为实验网提高巨大的背景流量已成为未来网络研究中不可或缺的一部分。在互联网漫长的发展过程中,WEB流量一直是网络流量的重要组成部分之一。因此,设计一个专门用于产生WEB流量的流量产生器对未来网络的相关研究领域,如网络性能研究、网络服务质量研究、新协议的测试与部署、网络安全性研究等具有重要的意义。
[0003]从并发角度出发,现有的WEB流量产生器其实现方法可分为三种:基于多进程并发的WEB流量产生器、基于多线程并发的WEB流量产生器和基于多进程多线程并发的WEB流量产生器。基于多进程并发的WEB流量产生器通常采用进程池技术,一个进程对应一个活跃的HTTP连接,有实现简单的特点。但是操作系能够创建的进程数是有限的,难于实现活跃连接的高并发。同时,如果创建过多的进程(进程数大于CPU核数)又会引起进程频繁切换开销。基于多线程并发的WEB流量产生器较基于多进程并发的WEB流量产生器虽然可以减小进程切换的开销,但仍存在一个进程中创建的线程数有限的限制。如果线程数过多则会仍存在线程开销过大的问题。基于多进程多线程并发的WEB流量产生器是前两种方式的结合,可以在一个进程中创建多个线程每一个线程对应一个活跃的HTTP连接。这类WEB流量产生器较前两者并发数有一定的提升。但是会存在多进程间通信和多线程间同步等一系列问题,使得编程复杂。同时,也存在大量的切换、同步等开销。因此,难以在低开销下有效地实现活跃HTTP连接的高并发,并对大量的WEB用户进行模拟。由此可见,目前多进程或多线程并发机制难于适用于高并发WEB流量产生器。

【发明内容】

[0004]针对以上现有的不足,提出了一种提高WEB流量产生器的用户模拟能力以及活跃HTTP连接并发数的基于事件驱动的高并发WEB流量产生器。本发明的技术方案如下:一种基于事件驱动的高并发WEB流量产生器,其包括:包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层负责WEB用户模拟和管理以及工作子进程族的管理和负载均衡;数据层主要负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述注册模块主要负责定时事件、I/O读写事件、信号事件的注册。
[0005]进一步的,所述控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块,其中用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块为实现了基于轮询机制和基于目标服务器ip地址机制的多工作进程间的负载均衡。
[0006]进一步的,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。
[0007]进一步的,所述WEB流量发生器采用master进程加多个worker进程的实现方式,其中master进程实现控制层和第一事件驱动层;所有worker进程都是master的子进程,并实现数据层和第二事件驱动层;此外,这些worker进程彼此相互隔离,仅各自与master进程之间有基于事件驱动层的通信通道。
[0008]进一步的,所述master进程中的第一事件驱动层的监听模块负责对控制层中模拟的大量WEB用户的用户行为过程进行定时监听,监听过程如下:
[0009]I)控制层对每一模拟的WEB用户,通过调用用户行为模块获得该用户进入下一个行为动作的时间值t ime,并设置用户下一步的行为函数handl er ;
[0010]2)根据time值,控制层通过调用第一事件驱动层中的注册模块进行定时事件的注册,并交由监听模块负责事件的监听;
[0011]3)当监听到该定时事件发生时,通过分发模块进行分发处理,然后调用该用户之前设置的行为函数hand ler;
[0012]4)在用户行为行为函数handler中中,首先根据用户行为模块构造一个连接消息,将具体的数据交互任务交由数据层处理;
[0013]5)然后根据用户管理模块以及用户行为模块得到该用户的下一个行为动作;
[0014]6)如果用户的下一个动作为退出,则释放该用户占用的资源;
[0015]7)否则,跳转到第I)步。
[0016]本发明的优点及有益效果如下:
[0017]本发明提供了一种基于事件驱动的用于产生WEB业务流量的流量产生器。与传统的并发实现技术相比,这种基于事件驱动技术并实现http连接高并发处理的WEB流量产生器在同等并发条件下能够有效的避免进程或线程的频繁切换以及对资源同步加锁的开销,从而提高用户的模拟能力并产生巨大的WEB业务流量。同时,由于事件驱动层的引入,能够有效地降低控制层与数据层以及数据层与网络之间的耦合度,使得这种流量产生器更易扩展。总之,这种基于事件驱动的WEB流量产生器具有低耦合,易扩展,高并发等特点,能够更好的适用于需要产生高并发,大流量的应用场景,如SDN实验网等。
【附图说明】
[0018]图1是本发明提供优选实施例模块结构示意图;
[0019]图2是本发明的进程关系示意图。
【具体实施方式】
[0020]以下结合附图,对本发明作进一步说明:
[0021]如图1所示,实施例
[0022]本发明提供了一种基于事件驱动的高并发WEB流量产生器,如附图1所示,该种基于事件驱动的高并发WEB流量产生器包括:控制层、数据层和两个位于控制层与数据层以及数据层与网络之间的事件驱动层,其中:一种基于事件驱动的高并发WEB流量产生器,其包括:包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层主要包括用户管理模块、用户行为模块、进程管理模块及负载均衡模块,用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块用于实现多工作进程间的负载均衡;数据层主要负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述注册模块主要负责定时事件、I/O读写事件、信号事件的注册。
[0023]进一步的,所述负载均衡模块用于实现基于轮询机制和基于目标服务器ip地址机制的用于完成多工作进程间的负载均衡。
[0024]进一步的,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。
[0025]本发明所涉及的WEB流量发生器采用主进程master加多个工作进程worker的实现方式,其中:
[0026]Master进程负责控制层和用于控制层与数据层之间的事件驱动层的实现;
[0027]Worker进程负责数据层与用于数据层与网络之间的事件驱动层的实现。
[0028]本发明所涉及的WEB流量发生器的进程关系如附图2所示。所有的worker进程都是master进程的子进程,且它们都彼此隔离,仅与m
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1