CN105515837B - 一种基于事件驱动的高并发web流量产生器 - Google Patents
一种基于事件驱动的高并发web流量产生器 Download PDFInfo
- Publication number
- CN105515837B CN105515837B CN201510849671.XA CN201510849671A CN105515837B CN 105515837 B CN105515837 B CN 105515837B CN 201510849671 A CN201510849671 A CN 201510849671A CN 105515837 B CN105515837 B CN 105515837B
- Authority
- CN
- China
- Prior art keywords
- module
- layer
- event
- user
- data
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明请求保护一种基于事件驱动的高并发WEB流量产生器,属于网络软件技术领域。该WEB流量产生器包括控制层,数据层和两个事件驱动层。其中控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块;数据层包含DNS查询模块,缓存管理模块,流量统计模块,发送模块和接收模块;事件驱动层包含事件的注册模块,监听模块和分发模块。本发明在控制层与数据层以及数据层与网络之间引入事件驱动层,用于解决层内大量的定时管理以及层间的异步通信问题。本发明提高了WEB流量产生器的用户模拟能力。同时,提高了WEB流量发生器并发执行性能,减小了进程或线程的切换开销,能够有效地提高HTTP连接的高并发处理能力。
Description
技术领域
本发明属于网络软件技术领域。涉及一种WEB流量产生器,尤其是一种基于事件驱动的高并发WEB流量产生器。
背景技术
随着互联网规模的不断扩大以及基于互联网应用的多样性,现有互联网的局限性日益突出。为解决当前互联网存在的问题,目前关于未来网络的相关研究已成为多国国家战略的一部分。很多国家或科研机构已经建立起用于未来网络研究的实验网络。网络流量作为互联网内在的重要组成部分,对于实验网同样如此。因此如何为实验网提高巨大的背景流量已成为未来网络研究中不可或缺的一部分。在互联网漫长的发展过程中,WEB流量一直是网络流量的重要组成部分之一。因此,设计一个专门用于产生WEB流量的流量产生器对未来网络的相关研究领域,如网络性能研究、网络服务质量研究、新协议的测试与部署、网络安全性研究等具有重要的意义。
从并发角度出发,现有的WEB流量产生器其实现方法可分为三种:基于多进程并发的WEB流量产生器、基于多线程并发的WEB流量产生器和基于多进程多线程并发的WEB流量产生器。基于多进程并发的WEB流量产生器通常采用进程池技术,一个进程对应一个活跃的HTTP连接,有实现简单的特点。但是操作系能够创建的进程数是有限的,难于实现活跃连接的高并发。同时,如果创建过多的进程(进程数大于CPU核数)又会引起进程频繁切换开销。基于多线程并发的WEB流量产生器较基于多进程并发的WEB流量产生器虽然可以减小进程切换的开销,但仍存在一个进程中创建的线程数有限的限制。如果线程数过多则会仍存在线程开销过大的问题。基于多进程多线程并发的WEB流量产生器是前两种方式的结合,可以在一个进程中创建多个线程每一个线程对应一个活跃的HTTP连接。这类WEB流量产生器较前两者并发数有一定的提升。但是会存在多进程间通信和多线程间同步等一系列问题,使得编程复杂。同时,也存在大量的切换、同步等开销。因此,难以在低开销下有效地实现活跃HTTP连接的高并发,并对大量的WEB用户进行模拟。由此可见,目前多进程或多线程并发机制难于适用于高并发WEB流量产生器。
发明内容
针对以上现有的不足,提出了一种提高WEB流量产生器的用户模拟能力以及活跃HTTP连接并发数的基于事件驱动的高并发WEB流量产生器。本发明的技术方案如下:一种基于事件驱动的高并发WEB流量产生器,其包括:包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层负责WEB用户模拟和管理以及工作子进程族的管理和负载均衡;数据层主要负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述注册模块主要负责定时事件、I/O读写事件、信号事件的注册。
进一步的,所述控制层包含用户管理模块,用户行为模块,进程管理模块和负载均衡模块,其中用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块为实现了基于轮询机制和基于目标服务器ip地址机制的多工作进程间的负载均衡。
进一步的,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。
进一步的,所述WEB流量发生器采用master进程加多个worker进程的实现方式,其中master进程实现控制层和第一事件驱动层;所有worker进程都是master的子进程,并实现数据层和第二事件驱动层;此外,这些worker进程彼此相互隔离,仅各自与master进程之间有基于事件驱动层的通信通道。
进一步的,所述master进程中的第一事件驱动层的监听模块负责对控制层中模拟的大量WEB用户的用户行为过程进行定时监听,监听过程如下:
1)控制层对每一模拟的WEB用户,通过调用用户行为模块获得该用户进入下一个行为动作的时间值time,并设置用户下一步的行为函数handler;
2)根据time值,控制层通过调用第一事件驱动层中的注册模块进行定时事件的注册,并交由监听模块负责事件的监听;
3)当监听到该定时事件发生时,通过分发模块进行分发处理,然后调用该用户之前设置的行为函数handler;
4)在用户行为行为函数handler中中,首先根据用户行为模块构造一个连接消息,将具体的数据交互任务交由数据层处理;
5)然后根据用户管理模块以及用户行为模块得到该用户的下一个行为动作;
6)如果用户的下一个动作为退出,则释放该用户占用的资源;
7)否则,跳转到第1)步。
本发明的优点及有益效果如下:
本发明提供了一种基于事件驱动的用于产生WEB业务流量的流量产生器。与传统的并发实现技术相比,这种基于事件驱动技术并实现http连接高并发处理的WEB流量产生器在同等并发条件下能够有效的避免进程或线程的频繁切换以及对资源同步加锁的开销,从而提高用户的模拟能力并产生巨大的WEB业务流量。同时,由于事件驱动层的引入,能够有效地降低控制层与数据层以及数据层与网络之间的耦合度,使得这种流量产生器更易扩展。总之,这种基于事件驱动的WEB流量产生器具有低耦合,易扩展,高并发等特点,能够更好的适用于需要产生高并发,大流量的应用场景,如SDN实验网等。
附图说明
图1是本发明提供优选实施例模块结构示意图;
图2是本发明的进程关系示意图。
具体实施方式
以下结合附图,对本发明作进一步说明:
如图1所示,实施例
本发明提供了一种基于事件驱动的高并发WEB流量产生器,如附图1所示,该种基于事件驱动的高并发WEB流量产生器包括:控制层、数据层和两个位于控制层与数据层以及数据层与网络之间的事件驱动层,其中:一种基于事件驱动的高并发WEB流量产生器,其包括:包括控制层,数据层和第一事件驱动层、第二事件驱动层,其中第一事件驱动层位于控制层与数据层之间,第二事件驱动层位于数据层与网络之间:控制层主要包括用户管理模块、用户行为模块、进程管理模块及负载均衡模块,用户管理模块用于管理模拟的WEB用户;用户行为模块用于控制每个模拟WEB用户的行为动作;进程管理模块用于管理负责数据层功能的工作进程族;负载均衡模块用于实现多工作进程间的负载均衡;数据层主要负责网络连接的管理、缓存管理、网络数据的收发以及流量统计;第一事件驱动层和第二事件驱动层均包括注册模块、监听模块及分发模块,所述注册模块主要负责定时事件、I/O读写事件、信号事件的注册。
进一步的,所述负载均衡模块用于实现基于轮询机制和基于目标服务器ip地址机制的用于完成多工作进程间的负载均衡。
进一步的,所述数据层包含连接池模块、缓存管理模块、流量统计模块、发送模块和接收模块,其中连接池模块用于对网络连接资源进行管理;缓存管理模块用于对DNS(域名系统)和请求URL(统一资源定位符)资源进行缓存管理;流量统计模块用于对每次连接流量的统计,并定时将本地的缓存数据发送到数据库服务器,以供前台分析;发送模块负责HTTP请求数据包的构造和发送;接收模块负责对HTTP响应数据的解析、验证和错误处理。
本发明所涉及的WEB流量发生器采用主进程master加多个工作进程worker的实现方式,其中:
Master进程负责控制层和用于控制层与数据层之间的事件驱动层的实现;
Worker进程负责数据层与用于数据层与网络之间的事件驱动层的实现。
本发明所涉及的WEB流量发生器的进程关系如附图2所示。所有的worker进程都是master进程的子进程,且它们都彼此隔离,仅与master进程有基于事件驱动的通信方式。每个worker进程会通过事件驱动机制建立和管理大量的HTTP连接,每个HTTP连接都与一个之对应的远程WEB服务器连接。每个连接上的网络IO读写以及定时管理都是基于worker的事件驱动层进行注册,监听和分发处理。
本发明所涉及的WEB流量发生器的执行过程如下:
1)master进程通过读取配置文件来初始化用户管理模块,用户行为模块,负载均衡模块和进程管理模块;
2)master进程根据配置文件初始化一个位于控制层与数据层之间的事件驱动层,并根据进程管理模块注册用于与worker进程通信的I/O事件,并事件驱动层进行监听。然后通过fork调用生成所有的worker进程。
3)每个worker进程根据配置文件完成对连接池、缓存管理、流量统计、发送模块和接收模块的初始化,同时还初始化一个主要位于数据层与网络的事件驱动层,然后通过注册在事件驱动层的I/O事件告知master进程其已完成初始化。
4)master进程对每个模拟的WEB用户调用用户行为模块生成该用户的行为属性,然后根据用户行为属性中的定时属性将其以定时事件的形式注册到master中的事件驱动层。
5)master进程中的事件驱动层监听到某一个定时事件发生后,根据控制层中的进程管理模块以及负载均衡模块选择一个合适的worker进程,然后向该worker进程发送一个连接消息(主要包含用户的USER_ID,访问页面的PAGE_ID,有效时间TIME),并触发worker进程中事件驱动层的I/O读事件,以通知worker进程读取相关消息;
6)master进程通过用户管理模块和用户行为模块判定该用户是否活跃。如果该用户继续活跃,则执行第4)步;否则,由用户管理模块回收该用户资源。
7)worker进程读取连接消息后,根据连接消息中的PAGE_ID从URL数据库中获取访问的页面及内嵌资源的URL集。然后从连接池中选取一个可用的连接资源,并初始化一个连接。同时,将该连接上的网络I/O事件和连接超时事件注册到事件驱动层,并发起到到WEB服务器的连接请求。
8)如果连接成功,worker进程中的事件驱动层将监听该连接有可读写的网络I/O事件。然后在其事件处理函数中调用发送模块封装HTTP请求消息,并将其发送出去,同时事件驱动层继续监听该连接上的网络I/O事件。
9)如果连接未能完成,将触发该连接上的定时事件,然后其定时处理函数将作相应的错误处理,并通知master进程,然后由连接池回收连接资源。
10)当worker进程中的事件驱动层监听到该连接有可读的网络I/O事件时,其事件处理函数调用接收模块以及流量统计模块,进行数据的接收、解析、统计。如果数据没有接收完,事件驱动层将继续监听该连接的读事件;如果本次响应的数据接收完,且还存在未请求的资源,则执行第11)步,否则执行第12步;如果出错,将进行相应的错误处理。
11)当worker进程中的事件驱动层监听到该连接有可写的网络I/O事件时,其事件处理函数调用发送模块发送请求数据。如果还有请求数据未发生将继续监听该连接的可写事件;如果该请求数据发生完,事件驱动层将监听该连接上的可读事件;如果如果出错,将进行相应的错误处理。
12)当一个活跃HTTP连接的数据交互完成后,将源注销其在事件驱动层的监听事件并释放连接占有的资源,然后该连接由连接池进行回收,以备下次使用。
与现有技术相比,本发明中的控制层与数据层没有直接的调用关系,而是基于事件驱动层对特定的事件进行异步处理,从而提高了WEB流量产生器的用户模拟能力。同时,本发明在数据层和网络之间也基于事件驱动层,将同步的网络通信转化为异步的网络I/O事件,提高了WEB流量发生器并发执行性能,减小了进程或线程的切换开销,能够有效地提高活跃HTTP连接的高并发能力。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (4)
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)步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510849671.XA CN105515837B (zh) | 2015-11-27 | 2015-11-27 | 一种基于事件驱动的高并发web流量产生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510849671.XA CN105515837B (zh) | 2015-11-27 | 2015-11-27 | 一种基于事件驱动的高并发web流量产生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105515837A CN105515837A (zh) | 2016-04-20 |
CN105515837B true CN105515837B (zh) | 2019-03-08 |
Family
ID=55723496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510849671.XA Active CN105515837B (zh) | 2015-11-27 | 2015-11-27 | 一种基于事件驱动的高并发web流量产生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105515837B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899458B (zh) * | 2017-03-28 | 2019-12-31 | 重庆邮电大学 | 一种基于sdn的流量录播系统 |
CN107196866B (zh) * | 2017-06-19 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种流量控制方法和装置 |
CN108228330B (zh) * | 2018-02-06 | 2022-03-04 | 北京安博通科技股份有限公司 | 一种串行化的多进程任务调度方法和装置 |
CN109976923B (zh) * | 2019-03-12 | 2020-12-18 | 深圳点猫科技有限公司 | 一种基于微信小程序的组件通讯实现方法及装置 |
CN111240827A (zh) * | 2019-12-27 | 2020-06-05 | 广东睿江云计算股份有限公司 | 一种事务型数据库连接池的改进方法 |
CN115277396B (zh) * | 2022-08-04 | 2024-03-26 | 北京智慧星光信息技术有限公司 | 一种用于模拟浏览器操作的消息驱动方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374083A (zh) * | 2007-08-21 | 2009-02-25 | 中国科学院计算技术研究所 | 一种无线传感器网络模拟器及其节点事件处理方法 |
CN104954195A (zh) * | 2015-04-22 | 2015-09-30 | 重庆邮电大学 | 一种基于多种网络数据业务的并发式流量发生系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564348B2 (en) * | 2004-11-05 | 2009-07-21 | Wirelesswerx International, Inc. | Method and system to monitor movable entities |
-
2015
- 2015-11-27 CN CN201510849671.XA patent/CN105515837B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374083A (zh) * | 2007-08-21 | 2009-02-25 | 中国科学院计算技术研究所 | 一种无线传感器网络模拟器及其节点事件处理方法 |
CN104954195A (zh) * | 2015-04-22 | 2015-09-30 | 重庆邮电大学 | 一种基于多种网络数据业务的并发式流量发生系统 |
Non-Patent Citations (1)
Title |
---|
基于NS-2软件的网络仿真设计与分析;卢冬梅;《武汉船舶职业技术学院学报》;20080131;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105515837A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105515837B (zh) | 一种基于事件驱动的高并发web流量产生器 | |
CN104834722B (zh) | 基于cdn的内容管理系统 | |
WO2015096656A1 (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
US20100077250A1 (en) | Virtualization based high availability cluster system and method for managing failure in virtualization based high availability cluster system | |
CN109698757A (zh) | 切换主备设备、恢复用户数据的方法、服务器及网络设备 | |
CN104052759A (zh) | 一种物联网即加即用技术的实现系统 | |
CN109254845A (zh) | 一种应用于分布式通信计算服务端的线性扩展实现方法 | |
CN105022717A (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
WO2020001409A1 (zh) | 一种虚拟网络功能vnf部署方法及装置 | |
CN105516292A (zh) | 一种智能变电站云平台的热备方法 | |
CN101739296A (zh) | 数据处理系统和方法 | |
CN101132269A (zh) | 数据同步方法及使用该方法的iptv内容分发网络系统 | |
CN104853002B (zh) | 一种基于sdn网络的dns解析系统与解析方法 | |
Song et al. | Controller-proxy: Scaling network management for large-scale SDN networks | |
CN109995875A (zh) | 虚拟化数据分发弹性网络系统 | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN103986709B (zh) | 一种RESTful架构下的中间件注册方法 | |
US20240118935A1 (en) | Pod deployment method and apparatus | |
CN106464541B (zh) | 基于网络功能虚拟化的故障处理方法及设备 | |
CN110213359A (zh) | 一种基于d2d的车联网组网数据推送系统和方法 | |
CN108464031B (zh) | 电信网络中的基于数据库的冗余 | |
CN107402826B (zh) | 一种以异步方式进行远程过程调用的方法及装置 | |
CN113326100A (zh) | 一种集群管理方法、装置、设备及计算机存储介质 | |
Wu et al. | The Research and Implementation of parallel web crawler in cluster | |
CN109040086A (zh) | 一种工业控制系统ddos攻击仿真方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |