CN114900445B - 流量录制方法、装置及电子设备 - Google Patents
流量录制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114900445B CN114900445B CN202210462089.8A CN202210462089A CN114900445B CN 114900445 B CN114900445 B CN 114900445B CN 202210462089 A CN202210462089 A CN 202210462089A CN 114900445 B CN114900445 B CN 114900445B
- Authority
- CN
- China
- Prior art keywords
- task
- target
- recording
- service
- flow
- 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
- 238000000034 method Methods 0.000 title claims abstract description 414
- 230000008569 process Effects 0.000 claims abstract description 365
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 238000013500 data storage Methods 0.000 claims description 29
- 238000012216 screening Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 14
- 230000000007 visual effect Effects 0.000 claims description 14
- 230000004931 aggregating effect Effects 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 240000007087 Apium graveolens Species 0.000 description 1
- 235000015849 Apium graveolens Dulce Group Nutrition 0.000 description 1
- 235000010591 Appio Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种流量录制方法、装置及电子设备,涉及计算机技术领域,具体涉及线上服务的流量录制技术领域。具体实现方案为:监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及线上服务的流量录制技术领域,具体涉及一种流量录制方法、装置及电子设备。
背景技术
在日常的测试过程中,由于线上真实流量相比于人工构造流量更能反映服务上线后的真实状况,因此往往需要使用线上真实流量对业务服务进行性能、功能等测试。
目前,对于业务服务的线上真实流量的获取,通常是手动拉取线上实例日志进行转换,或者通过中间件方式对线上单实例的流量进行录制。
发明内容
本公开提供了一种流量录制方法、装置及电子设备。
根据本公开的第一方面,提供了一种流量录制方法,包括:
监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;
在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;
基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制。
根据本公开的第二方面,提供了一种流量录制装置,包括:
监控模块,用于监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;
确定模块,用于在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;
录制模块,用于基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中的任一项方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行第一方面中的任一项方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现第一方面中的任一项方法。
根据本公开的技术解决了对业务服务的线上流量录制的流程复杂且扩展性比较差的问题,简化了对业务服务的线上流量录制的流程,且提高了对业务服务的线上流量录制的扩展性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的流量录制方法的流程示意图;
图2是任务执行进程执行流量录制任务的流程示意图;
图3是流量录制中台的架构示意图;
图4是根据本公开第二实施例的流量录制装置的结构示意图;
图5是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
如图1所示,本公开提供一种流量录制方法,包括如下步骤:
步骤S101:监控M个任务执行进程针对目标业务订阅的目标任务队列。
其中,M为正整数。
本实施例中,流量录制方法涉及计算机技术领域,尤其涉及线上服务的流量录制技术领域,其可以广泛应用于地图业务场景下。本公开实施例的流量录制方法,可以由本公开实施例的流量录制装置执行。本公开实施例的流量录制装置可以配置在任意电子设备中,该电子设备可以部署在流量录制中台,以执行本公开实施例的流量录制方法。
目标业务可以为线上运行的任一业务,如地图业务。目标业务在线上运行过程中,会接收线上用户各种各样的服务请求,并基于服务请求为线上用户提供服务,这些与线上用户交互的数据即可构成目标业务的服务上线后产生的线上流量。
由于线上流量相对于人工构造流量更能反映服务上线后的真实状态,因此,通常需要录制线上流量对服务进行性能和功能测试。本实施例的目的即是采用发布订阅模式的分布式架构来实现对目标业务的线上服务产生的流量进行录制。
流量录制装置可以在发布订阅模式的分布式构架中部署任务发布进程(可以称之为任务分发者Master)、M个任务执行进程(可以称之为任务订阅者Worker)和目标任务队列。若M大于1,即流量录制装置部署了至少两个任务执行进程的情况下,这至少两个任务执行进程可以分布式部署。
M个任务执行进程可以针对目标业务订阅同一任务队列,其所订阅的同一任务队列即为目标任务队列。目标任务队列可以用于存放任务发布进程发布的流量录制任务,供M个任务执行进程订阅,该流量录制任务用于录制目标业务的线上服务产生的流量。目标任务队列可以通过Redis或Kafka实现。
流量录制装置可以实时或周期监控目标任务队列是否存在任务发布进程发布的流量录制任务。其监控方式包括但不限于:读取目标任务队列,判断该目标任务队列是否为空,若不为空,则监控到目标任务队列包括任务发布进程发布的流量录制任务,若为空,则监控到任务发布进程并未发布流量录制任务。
可以基于程序语言Python如Python3的分布式***Celery框架,实现发布订阅模式的分布式构架。
步骤S102:在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量。
该步骤中,在监控到目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,可以从M个任务执行进程确定目标任务执行进程,该目标任务执行进程用于执行任务发布进程发布的目标流量录制任务。
当M为1时,目标任务执行进程可以串行执行任务发布进程发布的流量录制任务,流量录制装置可以在接收到目标任务执行进程返回的任务执行完成后,可以从M个任务执行进程确定目标任务执行进程,以允许目标任务执行进程从目标任务队列中取走最先发布的目标流量录制任务。
当M大于1时,若任务执行进程的数量大于或等于该时间任务发布进程发布的目标流量录制任务的数量,此时,M个任务执行进程可以并行执行任务发布进程发布的目标流量录制任务。
当M大于1时,若任务执行进程的数量小于该时间任务发布进程发布的目标流量录制任务的数量,M个任务执行进程可以并行执行任务发布进程发布的目标流量录制任务,并牺牲任务执行的时效性,使同一个任务执行进程串行执行多个目标流量录制任务。
可以通过控制任务执行进程数量的弹性伸缩,在资源使用和执行效率之间达到一个自定义的平衡。当注重执行效率和执行时效性时,可增加任务执行进程的部署数量,保证同一时间队列中的录制流量任务都可立即被空闲的任务执行进程认领;当注重资源使用时,可以适当减少任务执行进程的部署,牺牲任务执行的时效性,使同一个任务执行进程可以串行执行多个流量录制任务。
在一可选实施方式中,流量录制装置可以根据进程性能、网络带宽等因素,从M个任务执行进程中确定执行目标流量录制任务的目标任务执行进程。如M个任务执行进程可以根据进程性能、网络带宽等因素按照从好到劣的顺序进行排序,进程性能、网络带宽等比较好的任务执行进程可以依次取走目标任务队列中位于队首的流量录制任务。
在另一可选实施方式中,M个任务执行进程可以通过争抢模式争抢执行任务发布进程发布的目标流量录制任务,M个任务执行进程可以监控目标任务队列,并在确定目标任务队列存在目标流量录制任务的情况下,发送任务拉取请求,在任务发布进程发布目标流量录制任务之后,流量录制装置会把目标任务队列中位于队首的流量录制任务分配给最早发送任务拉取请求(对应流量录制装置最早获取的任务拉取请求)的目标任务执行进程。相应的,一个或多个目标任务执行进程可以依次争抢到任务发布进程发布的目标流量录制任务。
其中,一个目标任务执行进程一次执行一个目标流量录制任务,且在任务执行进程取走目标任务队列中位于队首的流量录制任务的情况下,目标任务队列中位于队首的流量录制任务将会进行更新,直至目标任务队列中的流量录制任务被全部取走。
在从M个任务执行进程确定目标任务执行进程的情况下,流量录制装置可以允许目标任务执行进程取走目标流量录制任务。
需要说明的是,流量录制装置可以从所述M个任务执行进程中处于空闲状态的任务执行进程中确定目标流量录制任务,以保证一个任务执行进程一次执行一个流量录制任务。
步骤S103:基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制。
该步骤中,通过目标任务执行进程可以拉取目标任务队列中的目标流量录制任务,且通过各个目标任务执行进程可以分别执行目标流量录制任务,并离线执行,以对目标业务的线上服务产生的流程进行录制。
在一应用场景中,如地图业务,可以基于地图业务服务的远程过程调用(RemoteProcedure Call,RPC)框架自带的录制功能实现线上实例的录制,地图业务服务所用的RPC框架可以具备将服务请求录制到本地磁盘的能力,基于此项能力,通过线下超文本传输协议(HyperText Transfer Protocol,HTTP)指令,可控制个别线上实例或批量线上实例开启RPC请求录制,将线上服务的请求录制到本次磁盘。并且可以建立线上传输通道,将各个实例的录制数据传输到分布式文件***(Andrew File System,AFS)集群进行临时存储。相应的,通过目标任务执行进程可以从AFS集群中相应位置拉取目标流量录制任务匹配的流量数据。
在一可选实施方式中,可以通过目标任务执行进程从配置数据库中获取目标流量录制任务的配置信息,该配置信息用于指示目标任务执行进程执行目标流量录制任务。基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据。
其可以包括但不限于以下信息内容:目标流量录制任务的触发时间、基于所述目标流量录制任务所录制的流量占比所述线上服务产生的流量的比例、基于所述目标流量录制任务所录制的流量产生的时间、基于所述目标流量录制任务所录制的流量对应的线上服务的标识信息、基于所述目标流量录制任务所录制的流量在所述预设线上数据存储库的转存地址等。
在另一可选实施方式中,目标流量录制任务本身可以关联有任务相关信息,目标任务执行进程在拉取到目标流量录制任务的情况下,即可基于目标流量录制任务中的任务相关信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据。
本实施例中,基于任务发布者和任务订阅者的模式,可以实现流量录制的任务订阅者Worker的分布式部署。基于Master和Worker的分发订阅模式可以实现流量录制任务的定制化,其部署简单。相对于手动拉取线上实例日志进行转换,或者通过中间件方式对线上单实例的流量进行录制的方式,在***部署之后,可以高度复用所部署的进程来执行发布的各个流量录制任务,无需针对每个流量录制任务重复开发程序并重新部署,因此流程简单、复用性高、且执行效率高。并且,通过任务发布进程发布流量录制任务,使之可适配目标业务中多个产品线的线上服务,可拓展性强。
可选的,所述步骤S102具体包括:
获取N个第一任务执行进程针对所述目标流量录制任务发送的任务拉取请求,所述N个第一任务执行进程为所述M个任务执行进程中处于空闲状态的任务执行进程,N为小于或等于M的正整数;
从所述N个第一任务执行进程中确定所述目标任务执行进程,所述目标任务执行进程为所述N个第一任务执行进程中发送目标任务拉取请求的任务执行进程,所述目标任务拉取请求为:以所述目标流量录制任务的发布时间为基准,最早获取的任务拉取请求。
本实施方式中,在任务执行进程处于空闲状态的情况下,可以请求执行流量录制任务,具体可以发送任务拉取请求来请求执行流量录制任务。
处于空闲状态的N个第一任务执行进程可以通过争抢模式争抢执行任务发布进程发布的目标流量录制任务,N个第一任务执行进程可以监控目标任务队列,并在确定目标任务队列存在目标流量录制任务的情况下,发送任务拉取请求,在任务发布进程发布目标流量录制任务之后,流量录制装置会把目标任务队列中位于队首的流量录制任务分配给N个第一任务执行进程中最早发送任务拉取请求(对应流量录制装置最早获取的任务拉取请求)的目标任务执行进程。相应的,可以从N个第一任务执行进程中确定一个或多个目标任务执行进程,这一个或多个目标任务执行进程可以依次争抢到任务发布进程发布的目标流量录制任务。
其中,一个目标任务执行进程一次执行一个目标流量录制任务,且在任务执行进程取走目标任务队列中位于队首的流量录制任务的情况下,目标任务队列中位于队首的流量录制任务将会进行更新,直至目标任务队列中的流量录制任务被全部取走。
举例来说,5个第一任务执行进程,分别为任务执行进程A1、任务执行进程A2、任务执行进程A3、任务执行进程A4和任务执行进程A5,任务发布进程在某一时间发布了两个流量录制任务,分别为流量录制任务B1和流量录制任务B2,流量录制任务B1位于目标任务队列的队首。随后随时时间先后顺序分别获取到任务执行进程A3、任务执行进程A4、任务执行进程A5、任务执行进程A2、任务执行进程A1发送的任务拉取请求。由于最早获取任务执行进程A3发送的任务拉取请求,因此任务执行进程A3将会取走流量录制任务B1,目标任务队列的队首更新为流量录制任务B2。在任务执行进程A3取走流量录制任务B1的情况下,任务执行进程A4将变成最早发送任务拉取请求的任务执行进程,相应取走流量录制任务B2。
本实施方式中,M个任务执行进程通过争抢模式争抢执行任务发布进程发布的目标流量录制任务,可以使得任务发布进程发布的目标流量录制任务,进一步提高流量录制任务的执行效率。
可选的,所述步骤S103具体包括:
通过所述目标任务执行进程,从配置数据库中获取所述目标流量录制任务的配置信息;
基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据。
本实施方式中,配置信息用于指示目标任务执行进程执行目标流量录制任务。
用户可以通过可视化任务配置前端,对不同的流量录制任务进行配置,可视化任务配置前端可以直连配置数据库,配置数据库可以为关系型数据库管理***MySQL,MySQL可以存储流量录制任务和流量录制任务的配置信息的对应关系。可以将流量录制请求发送给流量录制装置,并将流量录制任务的各项配置信息发送给配置数据库,供任务执行进程执行流量录制任务时使用。其中,用户在前端可配置的参数可以包括:流量录制的服务、流量录制的时间段、流量录制任务的触发时间、流量录制的比例、是否执行筛选策略、筛选规则、积累请求规则等。
相应的,在目标任务执行进程拉取到目标录制流量任务的情况下,可以通过目标任务执行进程,从配置数据库中读取目标流量录制任务的配置信息。
预设线上数据存储库可以为AFS集群,针对地图业务(其他业务也同样适用),可以基于地图业务服务的RPC框架自带的录制功能实现线上实例的录制,地图业务服务所用的RPC框架可以具备将服务请求录制到本地磁盘的能力,基于此项能力,通过线下HTTP指令,可控制个别线上实例或批量线上实例开启RPC请求录制,将线上服务的请求录制到本次磁盘。并且可以建立线上传输通道,将各个实例的录制数据传输到AFS集群进行临时存储。
相应的,流量录制装置可以基于配置信息,通过目标任务执行进程,从AFS集群中录制配置信息匹配的转存数据。其中,预设线上数据存储库中数据是以线上服务的实例为粒度进行转存的。
本实施方式中,通过可视化任务配置前端和后端配置数据库,可以实现各项录制场景的用户自定义,从而可以实现流量录制的灵活性,并缩短了用户的操作流程。可视化任务配置前端支持用户一键式操作,流程简单,比如,用户可在前端提交任务设置参数即可实现流量录制任务的一键式接入,通过更改前端参数即可实现不同时段、不同比例的线上流量录制,相比于日志转换和中间件录制的方式,可以极大降低用户的执行成本,节省测试人力资源。
并且,通过服务RPC框架自带的录制功能可以实现流量录制的普遍适用性,基于线上全量实例的流量抽取,可以避免日志转换或中间件录制只能录制个别实例而导致流量覆盖度不全的问题,从而可以提高所录制的服务线上流量的覆盖率。
可选的,所述配置信息包括如下至少一项:
基于所述目标流量录制任务所录制的流量对应的线上服务的标识信息;
基于所述目标流量录制任务所录制的流量在所述预设线上数据存储库的地址;
基于所述目标流量录制任务所录制的流量产生的时间;
所述目标流量录制任务的触发时间;
基于所述目标流量录制任务所录制的流量占比所述线上服务产生的流量的比例。
本实施方式中,通过配置流量录制任务的触发时间,流量录制任务所需要录制的流量产生的时间、比例、对应线上服务的标识、在预设线上数据存储库的地址等信息,以指示任务执行进程执行流量录制任务,相比于日志转换和中间件录制的方式,可以极大降低用户的执行成本,节省测试人力资源。
可选的,在所述配置信息包括所述目标流量录制任务的触发时间的情况下,所述基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,包括:
在当前时间已到达所述触发时间的情况下,标记所述当前时间发布的所述目标流量录制任务的状态为已执行状态,并基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集;
其中,在当前时间未到达所述触发时间的情况下,退出所述目标任务执行进程对所述目标流量录制任务的流量录制。
本实施方式中,触发时间可以为执行目标流量录制任务的时间,可以为立即触发或定时触发。
在目标流量录制任务的触发时间指示立即触发的情况下,即当前时间已到达触发时间,需要标记当前时间发布的目标流量录制任务的状态为已执行状态,以防止其他任务执行进程进行二次执行。并基于配置信息,通过目标任务执行进程,从目标业务的预设线上数据存储库中录制线上服务以实例为粒度的转存数据,得到线上服务的目标数据集。
而在目标流量录制任务的触发时间指示定时触发的情况下,即当前时间未到达触发时间,退出所述目标任务执行进程对所述目标流量录制任务的流量录制,即结束流量录制的流程,相应的,该目标任务执行进程处于空闲状态,可以与其他任务执行进程争抢执行流量录制任务。
本实施方式中,通过在当前时间已到达触发时间的情况下,标记当前时间发布的目标流量录制任务的状态为已执行状态,如此可以防止其他任务执行进程进行二次执行,而在当前时间未到达触发时间的情况下,结束流量录制流程,如此可以提高对任务执行进程的资源利用率。
可选的,所述基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集,包括:
基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
聚合所录制的转存数据,得到第一数据集;
对所述第一数据集进行词表筛选,得到所述线上服务的目标数据集。
图2是任务执行进程执行流量录制任务的流程示意图,如图2所示,任务执行进程的正常工作流程可以为:读取配置数据库,在当前时间到达触发时间的情况下,从AFS集群拉取录制时间段对应的以实例为粒度的转存数据,将转存数据聚合,词表筛选,词表上传,邮件通知,结束。如此可以通过任务执行进程执行流量录制任务,以实现对业务线上服务的流量录制。
而在当前时间未到达触发时间的情况下,结束流量录制流程。其中,词表指的是服务请求的集合。
读取配置数据库:当任务执行进程从目标任务队列中取到某个线上服务的流量录制任务后,可以先从配置数据库中读取该线上服务或该流量录制任务对应的各项配置,包括用户设置的期望触发时间,未到触发时间时会直接退出流量录制流程。若已到触发时间,则会将当前时间发布的流量录制任务的状态标记为已执行状态,防止其他任务执行进程进行二次执行。并从配置数据库中读取所需要录制的流量在AFS集群中的存储路径、采样比例等配置信息。
从AFS集群拉取录制时间段对应的以实例为粒度的转存数据:由于通过线上服务的RPC框架已将线上实例的全时段录制数据转存至了指定的AFS路径,任务执行进程只需要根据配置的录制时间段从AFS中拉取对应时段的原始录制数据(即转存数据)。若用户配置了采样比例,则根据采样比例随机抽样并拉取数据。
将转存数据聚合:以线上实例为粒度的原始录制数据聚合成一份数据合集。
词表筛选:基于多种筛选方法(如静态筛选、动态筛选等)对聚合后的转存数据进行筛选,保证请求覆盖率的同时尽可能减少词表量级,提高压测效率。如通过词表筛选,可以从5000千万条服务请求中筛选得到200万条服务请求。
词表上传:词表制作完成后可以自动将词表上传至发压平台,供用户压测使用。
邮件通知:流量录制任务执行完毕后可以自动发送通知邮件至用户处,以通知用户压测的数据已经录制完成。
可选的,所述方法还包括以下至少一项:
通过所述任务发布进程定时发布流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务;
在通过所述任务发布进程监测到所述目标业务的预设服务接口的状态发生变化的情况下,通过所述任务发布进程发布目标服务对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务,所述目标服务为所述预设服务接口对应的线上服务;
在通过所述任务发布进程接收到任务配置前端发送的流量录制请求的情况下,通过所述任务发布进程发布所述流量录制请求对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务。
本实施方式中,任务发布进程可以通过定时发布、轮询发布以及用户可视化任务配置前端触发三种方式,将流量录制任务发布至目标任务队列中,如此可以实现对流量录制任务的发布。其中,任务发布进程只负责将流量录制任务发布至目标任务队列中,而不关心流量录制任务何时被执行。
定时发布:任务发布进程内部可以维护一个时刻表,如流量录制装置可以通过任务发布进程每5分钟或10分钟执行线上服务的流量录制任务的一次发布,将流量录制任务发布到目标任务队列中,供任务执行进程订阅。
轮询发布:流量录制装置可以通过任务发布进程轮询某个固定接口,当接口状态改变(如线上服务的数据版本更新、新服务上线等)时,任务发布进程可以监测到这种状态改变,可以向目标任务队列中发布一个该服务对应的流量录制任务。
用户可视化任务配置前端触发:用户可在可视化任务配置前端点击执行按钮,可视化任务配置前端相应将流量录制请求发送给流量录制装置,流量录制装置通过任务发布进程接收到用户的流量录制请求后,可以向目标任务队列中发送该流量录制请求对应的流量录制任务。
可选的,所述方法还包括:
通过所述M个任务执行进程中处于空闲状态的任务执行进程,从所述目标业务的预设线上数据存储库中拉取所述目标业务的线上服务的服务请求;
基于用户配置的预设规则,对所述目标业务的线上服务的服务请求进行筛选,以得到所述目标业务的线上服务的稀有流量,所述稀有流量为所述线上服务产生的流量中占比小于预设阈值的流量。
本实施方式中,在任务执行进程未争抢到目标任务队列中的流量录制任务,或者目标任务队列中并没有流量录制任务的情况下,流量录制装置可以通过任务执行进程执行特殊请求积累的任务,任务执行进程可以在空闲时从AFS集群中拉取大量的服务请求,并根据用户通过可视化任务配置前端配置的预设规则(包括筛选规则、积累请求规则等)对服务请求进行筛选,以筛选得到目标业务的线上服务的稀有流量。其中,稀有流量可以为线上服务产生的流量中占比小于预设阈值的流量,预设阈值可以根据实际情况进行设置,通常表征占比比较小。
流量录制装置可以通过任务执行进程,将筛选得到的服务请求二次上传至AFS集群。任务执行进程每天在处于空闲状态时可以重复执行此项任务,直至筛选至制定数量后,邮件通知用户筛选完成。
相应的,用户在后续可以聚合该稀有流量和上传至发压平台的录制流量进行压测使用,如此通过流量录制和特殊稀有请求的积累功能,可以实现服务请求集合的高覆盖度。
可选的,所述方法还包括:
通过M个服务器进程接收客户端进程发布的更新命令,所述M个任务执行进程中每个任务执行进程对应一个服务器进程;
基于所述更新命令,通过所述M个服务器进程对所述M个任务执行进程进行更新。
本实施方式中,流量录制装置可以包括一个任务发布进程和大量任务执行进程,这些任务执行进程在每次***代码更新时,均需要同步升级,本实施方式通过客户端和服务端模式的部署,可以实现对大量任务执行进程的一键式更新。
具体可以在一个电子设备上部署客户端进程Client,并在该电子设备上进行代码管理,维护最新的任务执行进程代码,同时每个任务执行进程可以对应一个生产容器,在每一个生产容器上部署服务器进程Agent和任务执行进程。Agent的本质是一个网页服务器webserver,可接收来自Client的各项指令,包括执行下载、解压、启动等命令。通过Client发布更新命令至所有部署有任务执行进程的生产容器中的Agent,相应的,通过服务器进程Agent接收客户端进程发布的更新命令。Agent即可执行拉取代码、解包、启动任务执行进程等一系列任务。将这一系列操作封装成一个固定工具,即可实现任务执行进程更新的敏捷性,极大的节省人力成本。
可选的,所述方法还包括:
创建K个服务器进程,K为正整数;
通过所述K个服务器进程接收客户端进程发送的部署命令;
基于所述部署命令,通过所述K个服务器进程部署K个任务执行进程,所述K个任务执行进程与所述M个任务执行进程不同,所述K个任务执行进程用于执行所述任务发布进程发布的流量录制任务。
每增加一个线上服务的流量录制任务,出于执行效率的考虑,通常可以增加一个任务执行进程。
为了实现任务执行进程的一键式部署,将任务执行进程的代码快速部署到生产容器中,可以创建所需要部署的K个任务执行进程一一对应的K个服务器进程,并将每个服务器进程部署到新的生产容器中。
通过Client发布部署命令至新的生产容器中的Agent,相应的,通过服务器进程Agent接收客户端进程发布的部署命令。Agent即可执行拉取代码、解包、启动任务执行进程等一系列任务,在新的生产容器中部署任务执行进程,如此可以实现大量任务执行进程的快速部署,减少了运维成本。
以下以图3为例对本实施例的流量录制方法进行说明。
图3是流量录制中台的架构示意图,如图3所示,流量录制中台可以包括任务发布进程、任务执行进程、时刻表、目标任务队列、可视化任务配置前端、配置数据库、客户端进程和服务器进程。
任务发布进程可以通过定时发布、轮询发布以及用户可视化任务配置前端触发三种方式,将流量录制任务发布至目标任务队列中,供多个任务执行进程订阅。
多个任务执行进程通过争抢模式在任务发布进程发布流量录制任务后,从目标任务队列中取走流量录制任务,并从配置数据库中获取用户通过可视化任务配置前端所配置的流量录制任务或线上服务的配置信息,基于配置信息执行流量录制任务,以从AFS集群中录制线上服务的流量。
可以通过客户端进程命令发布至服务端进程,通过服务器进程对大量的任务执行进程进行批量部署或批量更新。
第二实施例
如图4所示,本公开提供一种流量录制装置400,包括:
监控模块401,用于监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;
确定模块402,用于在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;
录制模块403,用于基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制。
可选的,所述确定模块402,具体用于:
获取N个第一任务执行进程针对所述目标流量录制任务发送的任务拉取请求,所述N个第一任务执行进程为所述M个任务执行进程中处于空闲状态的任务执行进程,N为小于或等于M的正整数;
从所述N个第一任务执行进程中确定所述目标任务执行进程,所述目标任务执行进程为所述N个第一任务执行进程中发送目标任务拉取请求的任务执行进程,所述目标任务拉取请求为:以所述目标流量录制任务的发布时间为基准,最早获取的任务拉取请求。
可选的,所述录制模块403包括:
获取子模块,用于通过所述目标任务执行进程,从配置数据库中获取所述目标流量录制任务的配置信息;
任务执行子模块,用于基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据。
可选的,所述配置信息包括如下至少一项:
基于所述目标流量录制任务所录制的流量对应的线上服务的标识信息;
基于所述目标流量录制任务所录制的流量在所述预设线上数据存储库的地址;
基于所述目标流量录制任务所录制的流量产生的时间;
所述目标流量录制任务的触发时间;
基于所述目标流量录制任务所录制的流量占比所述线上服务产生的流量的比例。
可选的,在所述配置信息包括所述目标流量录制任务的触发时间的情况下,所述任务执行子模块包括:
标记单元,用于在当前时间已到达所述触发时间的情况下,标记所述当前时间发布的所述目标流量录制任务的状态为已执行状态;
任务执行单元,用于基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集;
其中,在当前时间未到达所述触发时间的情况下,退出所述目标任务执行进程对所述目标流量录制任务的流量录制。
可选的,所述任务执行单元,具体用于:
基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
聚合所录制的转存数据,得到第一数据集;
对所述第一数据集进行词表筛选,得到所述线上服务的目标数据集。
可选的,所述装置还包括:
第一发布模块,用于通过所述任务发布进程定时发布流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务;
第二发布模块,用于在通过所述任务发布进程监测到所述目标业务的预设服务接口的状态发生变化的情况下,通过所述任务发布进程发布目标服务对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务,所述目标服务为所述预设服务接口对应的线上服务;
第三发布模块,用于在通过所述任务发布进程接收到任务配置前端发送的流量录制请求的情况下,通过所述任务发布进程发布所述流量录制请求对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务。
可选的,所述装置还包括:
获取模块,用于通过所述M个任务执行进程中处于空闲状态的任务执行进程,从所述目标业务的预设线上数据存储库中拉取所述目标业务的线上服务的服务请求;
筛选模块,用于基于用户配置的预设规则,对所述目标业务的线上服务的服务请求进行筛选,以得到所述目标业务的线上服务的稀有流量,所述稀有流量为所述线上服务产生的流量中占比小于预设阈值的流量。
可选的,所述装置还包括:
第一接收模块,用于通过M个服务器进程接收客户端进程发布的更新命令,所述M个任务执行进程中每个任务执行进程对应一个服务器进程;
更新模块,用于基于所述更新命令,通过所述M个服务器进程对所述M个任务执行进程进行更新。
可选的,所述装置还包括:
创建模块,用于创建K个服务器进程,K为正整数;
第二接收模块,用于通过所述K个服务器进程接收客户端进程发送的部署命令;
部署模块,用于基于所述部署命令,通过所述K个服务器进程部署K个任务执行进程,所述K个任务执行进程与所述M个任务执行进程不同,所述K个任务执行进程用于执行所述任务发布进程发布的流量录制任务。
本公开提供的流量录制装置400能够实现流量录制方法实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如流量录制方法。例如,在一些实施例中,流量录制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的流量录制方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行流量录制方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (20)
1.一种流量录制方法,包括:
监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;
在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;
基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制;
所述基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制,包括:
通过所述目标任务执行进程,从配置数据库中获取所述目标流量录制任务的配置信息;
基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
其中,用户通过可视化任务配置前端,对不同的流量录制任务进行配置,可视化任务配置前端直连配置数据库,配置数据库为关系型数据库管理***MySQL;用户在前端配置的参数包括:流量录制的服务、流量录制的时间段、流量录制任务的触发时间、流量录制的比例、是否执行筛选策略、筛选规则、积累请求规则。
2.根据权利要求1所述的方法,其中,所述从所述M个任务执行进程确定目标任务执行进程,包括:
获取N个第一任务执行进程针对所述目标流量录制任务发送的任务拉取请求,所述N个第一任务执行进程为所述M个任务执行进程中处于空闲状态的任务执行进程,N为小于或等于M的正整数;
从所述N个第一任务执行进程中确定所述目标任务执行进程,所述目标任务执行进程为所述N个第一任务执行进程中发送目标任务拉取请求的任务执行进程,所述目标任务拉取请求为:以所述目标流量录制任务的发布时间为基准,最早获取的任务拉取请求。
3.根据权利要求1所述的方法,其中,所述配置信息包括如下至少一项:
基于所述目标流量录制任务所录制的流量对应的线上服务的标识信息;
基于所述目标流量录制任务所录制的流量在所述预设线上数据存储库的地址;
基于所述目标流量录制任务所录制的流量产生的时间;
所述目标流量录制任务的触发时间;
基于所述目标流量录制任务所录制的流量占比所述线上服务产生的流量的比例。
4.根据权利要求3所述的方法,其中,在所述配置信息包括所述目标流量录制任务的触发时间的情况下,所述基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,包括:
在当前时间已到达所述触发时间的情况下,标记所述当前时间发布的所述目标流量录制任务的状态为已执行状态,并基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集;
其中,在当前时间未到达所述触发时间的情况下,退出所述目标任务执行进程对所述目标流量录制任务的流量录制。
5.根据权利要求4所述的方法,其中,所述基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集,包括:
基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
聚合所录制的转存数据,得到第一数据集;
对所述第一数据集进行词表筛选,得到所述线上服务的目标数据集。
6.根据权利要求1至5中任一项所述的方法,还包括以下至少一项:
通过所述任务发布进程定时发布流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务;
在通过所述任务发布进程监测到所述目标业务的预设服务接口的状态发生变化的情况下,通过所述任务发布进程发布目标服务对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务,所述目标服务为所述预设服务接口对应的线上服务;
在通过所述任务发布进程接收到任务配置前端发送的流量录制请求的情况下,通过所述任务发布进程发布所述流量录制请求对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务。
7.根据权利要求1至5中任一项所述的方法,还包括:
通过所述M个任务执行进程中处于空闲状态的任务执行进程,从所述目标业务的预设线上数据存储库中拉取所述目标业务的线上服务的服务请求;
基于用户配置的预设规则,对所述目标业务的线上服务的服务请求进行筛选,以得到所述目标业务的线上服务的稀有流量,所述稀有流量为所述线上服务产生的流量中占比小于预设阈值的流量。
8.根据权利要求1至5中任一项所述的方法,还包括:
通过M个服务器进程接收客户端进程发布的更新命令,所述M个任务执行进程中每个任务执行进程对应一个服务器进程;
基于所述更新命令,通过所述M个服务器进程对所述M个任务执行进程进行更新。
9.根据权利要求1至5中任一项所述的方法,还包括:
创建K个服务器进程,K为正整数;
通过所述K个服务器进程接收客户端进程发送的部署命令;
基于所述部署命令,通过所述K个服务器进程部署K个任务执行进程,所述K个任务执行进程与所述M个任务执行进程不同,所述K个任务执行进程用于执行所述任务发布进程发布的流量录制任务。
10.一种流量录制装置,包括:
监控模块,用于监控M个任务执行进程针对目标业务订阅的目标任务队列,M为正整数;
确定模块,用于在监控到所述目标任务队列包括任务发布进程发布的目标流量录制任务的情况下,从所述M个任务执行进程确定目标任务执行进程,所述目标流量录制任务用于录制所述目标业务的线上服务产生的流量;
录制模块,用于基于所述目标流量录制任务,通过所述目标任务执行进程对所述目标业务的线上服务产生的流量进行录制;
获取子模块,用于通过所述目标任务执行进程,从配置数据库中获取所述目标流量录制任务的配置信息;
任务执行子模块,用于基于所述配置信息,通过所述目标任务执行进程执行所述目标流量录制任务,以从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
其中,用户通过可视化任务配置前端,对不同的流量录制任务进行配置,可视化任务配置前端直连配置数据库,配置数据库为关系型数据库管理***MySQL;用户在前端配置的参数包括:流量录制的服务、流量录制的时间段、流量录制任务的触发时间、流量录制的比例、是否执行筛选策略、筛选规则、积累请求规则。
11.根据权利要求10所述的装置,其中,所述确定模块,具体用于:
获取N个第一任务执行进程针对所述目标流量录制任务发送的任务拉取请求,所述N个第一任务执行进程为所述M个任务执行进程中处于空闲状态的任务执行进程,N为小于或等于M的正整数;
从所述N个第一任务执行进程中确定所述目标任务执行进程,所述目标任务执行进程为所述N个第一任务执行进程中发送目标任务拉取请求的任务执行进程,所述目标任务拉取请求为:以所述目标流量录制任务的发布时间为基准,最早获取的任务拉取请求。
12.根据权利要求10所述的装置,其中,所述配置信息包括如下至少一项:
基于所述目标流量录制任务所录制的流量对应的线上服务的标识信息;
基于所述目标流量录制任务所录制的流量在所述预设线上数据存储库的地址;
基于所述目标流量录制任务所录制的流量产生的时间;
所述目标流量录制任务的触发时间;
基于所述目标流量录制任务所录制的流量占比所述线上服务产生的流量的比例。
13.根据权利要求12所述的装置,其中,在所述配置信息包括所述目标流量录制任务的触发时间的情况下,所述任务执行子模块包括:
标记单元,用于在当前时间已到达所述触发时间的情况下,标记所述当前时间发布的所述目标流量录制任务的状态为已执行状态;
任务执行单元,用于基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据,得到所述线上服务的目标数据集;
其中,在当前时间未到达所述触发时间的情况下,退出所述目标任务执行进程对所述目标流量录制任务的流量录制。
14.根据权利要求13所述的装置,其中,所述任务执行单元,具体用于:
基于所述配置信息,通过所述目标任务执行进程,从所述目标业务的预设线上数据存储库中录制所述线上服务以实例为粒度的转存数据;
聚合所录制的转存数据,得到第一数据集;
对所述第一数据集进行词表筛选,得到所述线上服务的目标数据集。
15.根据权利要求10至14中任一项所述的装置,还包括:
第一发布模块,用于通过所述任务发布进程定时发布流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务;
第二发布模块,用于在通过所述任务发布进程监测到所述目标业务的预设服务接口的状态发生变化的情况下,通过所述任务发布进程发布目标服务对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务,所述目标服务为所述预设服务接口对应的线上服务;
第三发布模块,用于在通过所述任务发布进程接收到任务配置前端发送的流量录制请求的情况下,通过所述任务发布进程发布所述流量录制请求对应的流量录制任务至所述目标任务队列中,以得到所述目标流量录制任务。
16.根据权利要求10至14中任一项所述的装置,还包括:
获取模块,用于通过所述M个任务执行进程中处于空闲状态的任务执行进程,从所述目标业务的预设线上数据存储库中拉取所述目标业务的线上服务的服务请求;
筛选模块,用于基于用户配置的预设规则,对所述目标业务的线上服务的服务请求进行筛选,以得到所述目标业务的线上服务的稀有流量,所述稀有流量为所述线上服务产生的流量中占比小于预设阈值的流量。
17.根据权利要求10至14中任一项所述的装置,还包括:
第一接收模块,用于通过M个服务器进程接收客户端进程发布的更新命令,所述M个任务执行进程中每个任务执行进程对应一个服务器进程;
更新模块,用于基于所述更新命令,通过所述M个服务器进程对所述M个任务执行进程进行更新。
18.根据权利要求10至14中任一项所述的装置,还包括:
创建模块,用于创建K个服务器进程,K为正整数;
第二接收模块,用于通过所述K个服务器进程接收客户端进程发送的部署命令;
部署模块,用于基于所述部署命令,通过所述K个服务器进程部署K个任务执行进程,所述K个任务执行进程与所述M个任务执行进程不同,所述K个任务执行进程用于执行所述任务发布进程发布的流量录制任务。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210462089.8A CN114900445B (zh) | 2022-04-28 | 2022-04-28 | 流量录制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210462089.8A CN114900445B (zh) | 2022-04-28 | 2022-04-28 | 流量录制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900445A CN114900445A (zh) | 2022-08-12 |
CN114900445B true CN114900445B (zh) | 2024-04-16 |
Family
ID=82719432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210462089.8A Active CN114900445B (zh) | 2022-04-28 | 2022-04-28 | 流量录制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900445B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl*** |
CN108762952A (zh) * | 2018-05-24 | 2018-11-06 | 吉旗(成都)科技有限公司 | 一种分布式异步数据推送方案 |
CN111737127A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 用于测试地图服务的方法和装置 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN112612695A (zh) * | 2020-12-17 | 2021-04-06 | 平安普惠企业管理有限公司 | 基于rpa的功能测试环境验证方法、装置、设备及介质 |
CN112637085A (zh) * | 2020-12-08 | 2021-04-09 | 广州品唯软件有限公司 | 流量录制方法、装置、计算机设备和存储介质 |
CN113590497A (zh) * | 2021-09-27 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 业务服务的测试方法、装置、电子设备及存储介质 |
CN113656307A (zh) * | 2021-08-18 | 2021-11-16 | 北京沃东天骏信息技术有限公司 | 一种***容量评估方法、装置、设备和介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719338B2 (en) * | 2010-06-14 | 2014-05-06 | Red Hat, Inc. | Servicing database operations using a messaging server |
US8949175B2 (en) * | 2012-04-17 | 2015-02-03 | Turn Inc. | Meta-data driven data ingestion using MapReduce framework |
US10635999B2 (en) * | 2017-07-12 | 2020-04-28 | Accurate Group Holdings, Llc | Methods and systems for controlling a display screen with graphical objects for scheduling |
-
2022
- 2022-04-28 CN CN202210462089.8A patent/CN114900445B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317843A (zh) * | 2014-10-11 | 2015-01-28 | 上海瀚之友信息技术服务有限公司 | 一种数据同步etl*** |
CN108762952A (zh) * | 2018-05-24 | 2018-11-06 | 吉旗(成都)科技有限公司 | 一种分布式异步数据推送方案 |
CN111737127A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 用于测试地图服务的方法和装置 |
CN112637085A (zh) * | 2020-12-08 | 2021-04-09 | 广州品唯软件有限公司 | 流量录制方法、装置、计算机设备和存储介质 |
CN112612695A (zh) * | 2020-12-17 | 2021-04-06 | 平安普惠企业管理有限公司 | 基于rpa的功能测试环境验证方法、装置、设备及介质 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN113656307A (zh) * | 2021-08-18 | 2021-11-16 | 北京沃东天骏信息技术有限公司 | 一种***容量评估方法、装置、设备和介质 |
CN113590497A (zh) * | 2021-09-27 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 业务服务的测试方法、装置、电子设备及存储介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测*** |
Non-Patent Citations (5)
Title |
---|
Air Traffic Configuration Modelling and Dynamic Airspace Allocation using Discrete-Time Markov Chains;Lewis Faulkner等;《2019 IEEE Intelligent Transportation Systems Conference (ITSC)》;20191128;全文 * |
Redis——任务队列;osc_mcgiza9x;《oschina》;第1-3页 * |
基于XML的数据库中间件的设计与实现;徐光美, 程耕国, 吴爱华;计算机工程与设计;20040228(02);全文 * |
基于流量分析的工业控制***网络安全基线确定方法研究;李威;李建俊;何晓霞;谢新勤;;科技通报;20180930(09);全文 * |
流量回放***的设计与实现--流量录制模块;orionc;《简书》;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114900445A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7112919B2 (ja) | スマート装置のタスク処理方法および装置 | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN110620699B (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
CN108696400A (zh) | 网络监测方法和装置 | |
CN111786939B (zh) | 物联网管理平台测试的方法、装置和*** | |
CN112506619B (zh) | 作业处理方法、装置、电子设备和存储介质 | |
CN112579148A (zh) | 基于业务代理的业务消息处理方法、装置及电子设备 | |
CN111200606A (zh) | 深度学习模型任务处理方法、***、服务器及存储介质 | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和*** | |
CN110865921A (zh) | 数据监控方法、装置、可读存储介质和电子设备 | |
CN104683473A (zh) | 监控服务质量的方法、服务端、客户端及*** | |
CN114900445B (zh) | 流量录制方法、装置及电子设备 | |
CN110781387B (zh) | 证券行情快照的推送方法、证券交易***及存储介质 | |
CN116010065A (zh) | 分布式任务调度方法、装置以及设备 | |
CN115391158A (zh) | 一种时延确定方法、***、装置及电子设备 | |
CN114612212A (zh) | 一种基于风险控制的业务处理方法、装置和*** | |
CN109088929B (zh) | 用于发送信息的方法及装置 | |
CN114049065A (zh) | 一种数据处理方法、装置及*** | |
CN113542424A (zh) | 数据处理方法、装置、设备及计算机程序产品 | |
CN113254097A (zh) | 配置信息的下发方法和装置、电子设备和存储介质 | |
CN108874431B (zh) | 用于更新应用的方法及装置 | |
CN113556402B (zh) | 数据下载调度方法、装置及电子设备 | |
CN113422734B (zh) | 资源分发方法、装置、电子设备以及存储介质 | |
CN113992690B (zh) | 消息传递方法、装置、设备和存储介质 | |
CN115981872B (zh) | 算法资源的调用方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |