业务压力管理方法、装置、设备、系统及存储介质与流程

文档序号:15567184发布日期:2018-09-29 03:37阅读:188来源:国知局

本申请涉及压力测试技术领域,尤其涉及一种业务压力管理方法、装置、设备、系统及存储介质。



背景技术:

为了增强业务系统的可靠性,经常需要监控业务系统的压力参数,以确定业务系统中压力情况,进而改进业务系统的硬件或者业务布局等。其中,对业务系统进行监管的一种方式可以是对业务系统进行压力测试,而压力测试是指通过模拟大量并发请求,来测试后台服务系统(如,一台或者多台服务器构成的后台服务器系统)的负载能力,以确定出后台服务系统的性能瓶颈。例如,通过压力测试可以分析出后台服务系统中后台服务器的内存、处理器等的最大业务请求处理量等。

在对业务系统进行压力管控的过程中,用户需要业务场景的不同,构建不同的压力管理系统,并根据对业务场景的不同需求,在压力管理系统中存储预先编写的控制代码以及大量的模拟业务请求包,这样,当需要监管的业务系统发生变化时,用户便需要重新编写不同的控制代码以及模拟出业务请求包,使得对业务系统的压力参数的管控过程较为复杂。而且,由于压力参数管控过程中一般都需要模拟出大量的业务请求包,而用户每次都需要编写大量的业务请求包,而会导致用户的开发工作量较大,从而使得分析业务系统压力参数的周期较长,进而使得分析业务系统压力参数的效率较低。



技术实现要素:

有鉴于此,本申请提供了一种业务压力管理方法、装置、设备、系统及存储介质,以获取业务系统的压力参数的复杂度,进而提高分析压力参数的效率。

为实现上述目的,一方面,本申请提供了一种业务压力管理方法,包括:

接收控制服务器发送的压力参数请求指令;

响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;

执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;

获取预先配置的指向目标业务系统的至少一个网络标识;

依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统中的至少一台目标服务器;

获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

在一种可能的实现方式中,所述压力参数请求指令携带有压力参数请求的发包速率;

所述依据所述至少一个网络标识,发送所述多个业务请求,包括:

依据所述至少一个网络标识,并按照所述发包速率,发送所述多个业务请求。

在一种可能的实现方式中,所述依据所述至少一个网络标识,并按照所述发包速率,发送所述多个业务请求,包括:

按照所述发包速率以及预置的令牌桶算法,确定当前是否满足发包条件;

当满足发包条件时,按照所述至少一个网络标识,发送所述多个业务请求中当前待发送的目标业务请求,以将所述目标业务请求发送给所述目标业务系统中的至少一台目标服务器。

在一种可能的实现方式中,所述获取并统计所述目标服务器针对所述业务请求返回的响应结果,包括:

接收所述目标服务器针对所述业务请求返回的响应结果;

调用用户通过所述配置接口配置的解析函数,并通过所述解析函数对所述响应结果进行分类统计,并将所述响应结果对应的分类统计结果发送给所述控制服务器。

又一方面,本申请还提供了一种业务压力管理装置包括:

指令接收单元,用于接收控制服务器发送的压力参数请求指令;

函数调用单元,用于响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;

请求构建单元,用于执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;

标识获取单元,用于获取预先配置的指向目标业务系统的至少一个网络标识;

请求发送单元,用于依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统中的至少一台目标服务器;

结果统计单元,用于获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

又一方面,本申请还提供了一种业务压力管理系统,包括:

控制服务器和至少一台压力管理服务器;

其中,所述控制服务器,用于接收用户的参数监控命令,并根据所述参数监控命令向所述测试服务器发送压力参数请求指令;

所述测试服务器,用于响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;获取预先配置的指向目标业务系统的至少一个网络标识;依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统的至少一台目标服务器;获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

又一方面,本申请还提供了一种压力管理服务器,包括:

处理器和存储器;

其中,所述处理器用于执行所述存储器中存储的程序;

所述存储器用于存储程序,所述程序至少用于:

接收控制服务器发送的压力参数请求指令;

响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;

执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;

获取预先配置的指向目标业务系统的至少一个网络标识;

依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统中的至少一台目标服务器;

获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任一项所述的业务压力管理方法。

可见,在本申请实施例中,在控制服务器向压力管理服务器发送了压力参数请求指令之后,该压力管理服务器可以调用用户通过其配置接口配置的请求构造函数,由于请求构造函数中包含用于生成业务请求的至少一种请求实例,因此,压力管理服务器可以基于请求实例以及预置的多个参数,自动构建出大批量用于确定目标业务系统的压力参数的业务请求,从而无需用户手动编写大量用于压力参数确定的业务请求,减少了用户的开发工作量较大,有利于减少由于编写大量业务请求所耗费的时长,进而可以提高获取并分析业务系统的压力参数的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本申请实施例中一种业务压力管理系统的一种组成架构示意图;

图2示出了本申请实施例中一种业务压力管理方法一种流程交互示意图;

图3示出了本申请实施例中一种业务压力管理系统中各个设备内部模块部署示意图;

图4示出了本申请实施例中一种业务压力管理方法又一种流程交互示意图;

图5示出了本申请实施例中一种业务压力管理方法所适用的一种应用场景的组成架构示意图;

图6示出了本申请实施例中一种业务压力管理装置的一种组成结构示意图;

图7示出了本申请实施例中一种业务压力管理装置的又一种组成结构示意图;

图8示出了本申请实施例中一种压力管理服务器的组成结构示意图。

具体实施方式

本申请实施例的业务压力管理方法适用于获取各种业务的后台服务系统的压力参数,以便为监控业务系统的性能瓶颈,并合理调控业务系统的业务处理量或者改进业务系统提供依据;本申请可以降低人工编写业务请求而导致的获取压力参数的复杂度,提高获取业务系统的压力参数的便捷性,进而提高获取压力参数的效率。

为了便于理解,先对本申请的业务压力管理方法所适用的业务压力管理系统进行介绍。如,参见图1,其示出了本申请的一种业务压力管理系统的组成架构示意图。

由图1可以看出,该业务压力管理系统10包括:控制服务器101和至少一台压力管理服务器102。

其中,控制服务器与压力管理服务器可以通过网络或者物理链路相连。

该控制服务器101,用于接收用户的参数监控命令,该参数监控命令用于指示控制服务器启动对目标业务系统的监管;根据该参数监控命令,生成压力参数请求指令,并向压力管理服务器发送压力参数请求指令。

相应的,压力管理服务器102,用于基于该控制服务器的压力参数请求指令,向目标业务系统中的目标服务器发送业务请求,以获取到目标业务系统的压力参数情况。

如,在图1中,还包括一个待监控的目标业务系统11,该目标业务系统11包括至少一台服务器111,每台服务器均可以作为需要监控的目标服务器。

如,该目标业务系统可以为一个业务服务平台,如,社交网络的业务服务平台,游戏业务的后台服务系统等等。

可以理解的是,该控制服务器还可以接收用户的终止命令或者暂停命令,其中,终止命令用于指示控制服务器结束对目标业务系统的监控;暂停命令用于指示控制服务器暂停对目标业务系统的监控。

相应的,控制服务器在接收到终止命令时,会向压力管理服务器发送终止指令,以便压力管理服务器响应该终止指令停止向目标业务系统发送业务请求。

控制服务器在接收到暂停指令时,会向压力管理服务器发送暂停指令,以便压力管理服务器暂停压力参数的获取。进一步的,在控制服务器在接收到用户输入的参数监控命令或者恢复命令时,则可以向压力管理服务器发送压力参数请求指令或者恢复指令,以便压力管理服务器重新启动从目标业务系统获取压力参数。

在本申请实施例中,为了简化压力参数获取的复杂度,在压力管理服务器中配置了一个配置接口,该配置接口为可用用户使用的开发接口,用户通过该配置接口可以向压力管理服务器中配置用于生成业务请求的代码(或者称为代码段)。

通过用户还可以向压力管理服务器中配置指向目标业务系统的网络标识。该网络标识可以为该目标业务系统中至少一台服务器的网络地址,也可以是目标业务系统中负载均衡器的网络地址或者唯一标识等。

可以理解的是,压力管理服务器可以部署有业务压力管理所需的相关程序,从而无需用户每次针对不同业务构建并部署相关的监管程序、监管数据等。而且,用户通过压力管理服务器提供的配置接口也只需要配置用于生成业务请求的代码,无需配置出监控系统压力所需的大量业务请求,而是可以由压力管理服务器基于用户配置代码来自动批量生成大量的业务请求。

可以理解的是,以上目标业务系统为待进行业务压力管理的业务系统。在一种应用场景中,可以针对目标业务系统获取影响其性能瓶颈的压力参数,以定位出目标业务系统的性能瓶颈,以便对目标业务系统进行软件或者硬件改进,又或者调整目标业务系统的业务布局等等。

在本申请实施例中,该业务请求可以理解为模拟出的需要向目标业务处理系统发送的业务请求,以便从目标业务处理获取压力参数结果。

其中,控制服务器以及压力管理服务器具体执行的操作可以分别参见后续图2-图5实施例中控制服务器及压力管理服务器侧所执行的相关操作。

结合以上共性,参见图2,其示出了本申请一种业务压力管理方法一个实施例的流程示意图,本实施例的方法可以包括:

s201,控制服务器在接收到用户输入的参数监控命令后,向每台压力管理服务器发送压力参数请求指令。

如,在控制服务器中可以配置有启动按键,以及停止按键等。如果控制服务器检测到用户触按该启动按键,则确定用户输入参数监控命令,从而生成压力参数请求指令,并向业务压力管理系统中的各台压力管理服务器分别发送压力参数请求指令,以实现同时通过一台或者多台压力管理服务器实现对目标业务系统的压力参数的监控。

可选的,为了合理控制压力管理服务器向目标业务系统发送业务请求的频率,该控制服务器发出的该压力参数请求指令中还可以携带有发包速率。该发包速率用于指示压力管理服务器在单位时间内发出的业务请求的数量。例如,发包速率可以为每秒100条业务请求。

其中,发包速率可以是控制服务器预先配置的,如在用户配置业务压力管理系统的过程中,根据目标业务系统所能承受的业务请求的情况,在控制服务器所提供的开发接口中配置发包速率。

可选的,控制服务器中也可以预先配置不同类型的业务所对应的发包速率,这样,根据不同业务的监控需求,用户在控制服务器中配置所需测试的目标业务的信息。相应的,在接收到用户的参数监控命令之后,控制服务器根据不同类型的业务与发包速率的对应关系,确定该参数监控命令对应的目标业务系统,并确定该目标业务系统所对应的发包速率。

可选的,控制服务器也可以接收用户设定的发包速率,并在压力参数请求指令中携带用户设定的发包速率。如,用户在发出参数监控命令的同时,可以输入发包速率等。可以理解的是,对于用户设定发包速率的情况,在压力管理服务器向控制服务器发出压力参数请求指令之后,用户仍可以随时调整发包速率,而控制服务器可以将用户调整后的发包速率发送给压力管理服务器,以调整压力管理服务器发送业务请求的频率。

s202,压力管理服务器响应于该压力参数请求指令,调用用户通过配置接口配置的请求构造函数。

其中,该请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例。每种请求实例为一段用于构造业务请求的代码(或者说代码段),请求实例可以被计算机执行,且通过执行该请求实例可以进行实现业务请求的构建。其中,不同请求实例所构建出的业务请求也会有所差异。

压力管理服务器通过运行请求实例,可以执行业务请求的构建。其中,压力管理服务器通过运行配置的每种请求实例,均可以构建出大量的业务请求,从而无需用户配置大量的业务请求,而相对于配置业务请求,用户配置用于生成业务请求的代码的工作量会相对较少。

可以理解的是,为了实现压力管理服务器可以调用并执行该请求构造函数,该请求构造函数可以为一种回调函数,以使得压力管理服务器可以在接收到参数监控命令时,调用该请求构造函数,以执行该请求构造函数中的请求实例。

可见,本申请的压力管理服务器中提供有配置接口,以使得用户根据对不同业务场景的不同需求,通过该配置接口向该压力管理服务器中配置不同业务系统所对应的请求构造函数,以使得压力管理服务器基于配置的请求构造函数具备生成针对相应业务系统的业务请求。

s203,压力管理服务器执行该至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求。

可以理解的是,不同业务请求所请求的具体内容不同时,业务请求所涉及到的参数也会有所不同,因此,在该压力管理服务器中预先配置了多种参数。相应的,压力管理服务器可以通过运行请求实例,并从预置多个参数中随机选择一种或多种参数,来生成不同种业务请求,这样,通过运行每种请求实例,均可以生成大量的业务请求,从而在压力管理服务器中模拟出大量的业务请求。

可选的,压力管理服务器可以针对每种请求实例,将预置的多个参数中部分或者全部参数划分为多个参数组,并通过运行该请求实例分别加载多个参数组中的参数,以生成多个业务请求。其中,每次运行请求实例所加载的参数组中的参数不同时,所生成业务请求也会有所不同。如,运行请求实例的过程中加载参数1,则会生成用于请求参数1或者涉及参数1相应数据处理的业务请求1;而如果运行请求实例的过程中加载参数2,则会生成的业务请求2,而业务请求2与业务请求1不同。

当然,在预置了生成业务请求所需的多种参数的情况下,通过运行用于构建业务请求的请求实例来生成业务请求的具体方式可以有多种,本申请对此不加以限制。

其中,预置的多个参数可以为包含具体取值的参数,也可以仅仅是不同类型参数的参数名称等,具体可以根据实际需要设定。

可以理解的是,在用于构建业务请求的请求实例(即代码段)确定的情况下,运行请求实例的过程中选择加载不同的参数,可以生成不同的业务请求,从而使得通过运行一个请求实例,可以批量生成大量的业务请求,提高了业务请求的生成效率。

s204,压力管理服务器获取预先配置的指向目标业务系统的至少一个网络标识。

如,用户可以通过配置接口可以向压力管理服务器中配置至少一个网络标识。

其中,依据指向该目标业务系统的至少一个网络标识,可以实现向该目标业务系统发送模拟出的业务请求。如,该网络标识可以为目标业务系统的网络标识,如,目标业务系统中负责业务请求调度的调度服务器或者负载均衡器的ip地址、唯一标识等网络标识。或者,该网络标识也可以是该目标业务系统中至少一个目标服务器的网络地址,如,目标服务器的为ip地址等。

例如,以该网络标识可以为该目标业务系统中负载均衡器的网络地址或者唯一标识为例,压力管理服务器可以依据该网络标识,向目标业务系统的负载均衡器发送模拟出的业务请求,以通过负载均衡器将业务请求转发给目标业务系统中的至少一台服务器。

如,以网络地址为ip地址为例,与目前测试系统只能针对单一的ip地址(或者其他类型的网络)执行压力参数获取相比,本申请实施例中可以向压力管理服务器中配置一个或者多个服务器的ip地址,从而针对目标业务系统中更多类型的服务器进行压力参数获取。例如,目标业务系统的后台服务器从数据处理逻辑上可以分为逻辑层和数据层,通过配置不同的ip地址可以对目标业务系统中属于逻辑层和数据层的后台服务器均获取其压力参数。

s205,压力管理服务器依据该至少一个网络标识,发送该多个业务请求,以将该多个业务请求发送给该目标业务系统的至少一台目标服务器。

如,网络标识为目标业务系统中目标服务器的ip地址(或者其他网络地址)时,依据该至少一个目标服务器的ip地址,向该目标业务系统中目标服务器发送该多个业务请求。

又如,该网络标识为目标业务系统中负载均衡器的ip地址(或者唯一标识)时,则按照该负载均衡器的ip地址(或者唯一标识),将该多个业务请求发送给负载均衡器,以通过该负载均衡器将业务请求发送给该目标业务系统中各台目标服务器。其中,负载均衡器可以结合业务请求所对应的业务类型,将业务请求分别给目标业务系统中该业务类型对应的目标服务器中。如,某个业务请求为仅仅是逻辑层(并不涉及数据层的业务等)进行测试的业务请求,则该负载均衡器会将该业务请求转发给逻辑层对应的服务器,而不会转发给数据层对应的服务器。

其中,压力管理服务器通过向目标业务系统的目标服务器发送多个业务请求,可以模拟出目标服务器处理大量业务请求的场景,从而可以模拟出目标服务器处于大量业务请求时的压力参数情况。

可选的,在压力参数请求指令中携带有发包速率的情况下,压力管理服务器可以依据该至少一个网络标识,并按照该发包速率,发送该多个业务请求。压力管理服务器按照该发包速率,控制单位时间内(如,每秒)发出的业务请求的数量,从而实现控制目标业务系统中目标服务器单位时间内接收到业务请求的数量,避免由于目标服务器短时间内接收到的业务请求数量过大,而与目标服务器实际处理业务请求的情况偏差较大,从而导致无法精准确定目标业务系统的压力参数的情况。

进一步的,考虑到如果仅仅限制发包速率,可能出现按照发包速率,在单位时间内的较短时间内发出较多数量的业务请求,而在该单位时间内的其余时间则没有任何业务请求发出,从而导致业务请求发送不均匀,与目标服务器处理业务请求的实际情况不符。如,发包速率为每秒100条业务请求,目标服务器按照该发包速率,有可能在前0.1秒就发出了100秒,而后面的0.9秒则不会向目标服务器发出任何业务请求,从而使得目标服务器在前0.1秒发出了大量业务请求,但是在后面的0.9秒则可能处于闲置状态,这同样会导致短时间内目标服务器处理的业务量相对较大,无法准确反映出目标服务器抗压力情况,从而无法准确测试出目标服务器的性能瓶颈。

可选的,为了保证单位时间内能够均匀向目标服务器发送业务请求,在压力管理服务器中预置了令牌桶算法。相应的,压力管理服务器可以按照该发包速率以及预置的令牌桶算法,确定当前是否满足发包条件;当压力管理服务器确定当前满足发包条件时,依据该至少一个网络标识,发送该多个业务请求中当前待发送的目标业务请求,以将该目标业务请求发送给该目标业务系统的至少一台目标服务器。

其中,多个业务请求中当前待发送的目标业务请求可以根据需要设定。如,可以设定该多个业务请求的发送次序,然后按次序确定当前待发送的目标业务请求。又如,可以随机从多个业务请求中选择待发送的目标业务请求等。

其中,按照发包速率,并通过令牌桶算法可以分析当前是否满足发包条件,该发包条件可以认为是满足令牌桶算法所设定的能够触发业务请求发送的时刻。按照发包速率,并结合令牌桶算法来控制业务请求发送,可以实现均匀的向目标服务器发送业务请求。

令牌桶算法的基本原理为:假设发包速率每秒r个,则每隔1/r秒将一个令牌加入到一个桶(可以为一个缓存或者虚拟的容器);那么每次发送业务请求之前,可以检测该桶内是否存在令牌,如果存在令牌,则满足发包条件,压力管理服务器会向目标服务器发送业务请求,同时,删除令牌桶中的一个令牌;如果桶内不存在令牌,则当前不满足发包条件,则需要等待令牌桶中存在令牌时,再发送业务请求。

s206,压力管理服务器接收目标服务器针对业务请求返回的响应结果。

可以理解的是,目标服务器接收到压力管理服务器发送的业务请求之后,会针对该业务请求返回相应的响应结果,以便压力管理服务器了解到目标业务系统中目标服务器接收以及处理该业务请求的情况。

其中,该响应结果可以为目标服务器针对该业务请求返回的响应包的相应情况,如,指示成功处理的响应包,指示失败的响应包,响应包反馈时长等等。

相应的,基于目标业务系统返回的响应结果,可以确定出该目标业务系统的压力参数结果。如,基于目标业务系统中指示成功处理的响应包以及指示失败的响应包的数量,来分析目标业务系统的抗压力情况;又如,根据目标业务系统中不同目标服务器反馈的响应结果,分析出影响目标业务系统的压力性能的具体原因等等。

s207,压力管理服务器调用用户通过该配置接口配置的解析函数,并通过该解析函数对接收到的响应结果进行分类统计,并将响应结果对应的分类统计结果发送给控制服务器。

其中,压力管理服务器还可以支持通过配置接口配置解析函数。该解析函数用于对接收到的响应结果进行分类统计,并将分类统计的压力参数结果上报给控制服务器。其中,分类统计结果用于为控制服务器确定该目标业务系统的压力参数结果提供依据。其中,压力参数结果可以是目标业务系统中影响性能的压力参数,目标业务系统当前运行中表征压力情况的压力参数等。

其中,该解析函数的类型也属于回调函数,相应的,压力管理服务器通过调用并运行该解析函数可以将响应结果进行分类统计,并上报给控制服务器,以便控制服务器对各个压力管理服务器返回的响应结果的分类统计结果进一步统计,以为分析压力参数结果提供依据。

可以理解的是,解析函数也可以仅仅是用于将接收到的响应结果上报给控制服务器。也就是说,通过在压力管理服务器中配置解析函数,可以使得压力管理服务器调用该解析函数,以将响应结果上报给控制服务器,以使得控制服务器可以获得所有压力管理服务器得到的响应结果,从而为分析目标业务系统的压力参数以及性能瓶颈提供依据。

本申请中压力管理服务器中提供的配置接口可以支持用户配置解析函数,从而使得用户可以根据测试需求来配置解析函数,以使得各个压力管理服务器所得到的响应结果可以最终反馈给压力管理服务器,而无需人工统计各个压力管理服务器的表征压力参数的具体结果。

可以理解的是,该步骤s206和s207仅仅是压力管理服务器对响应结果的一种处理方式,在实际应用中,压力管理服务器还可以通过其他方式获得并统计目标服务器针对所述业务请求返回的响应结果,只要是能够获取目标服务器的响应结果,以使得可以基于响应结果确定目标业务系统的压力参数结果即可。

可以理解的是,在本申请实施例中,为了进一步提高确定业务系统中压力参数的效率,压力管理服务器可以采用异步通信机制,发送业务请求。所谓异步通信机制是指,压力服务器发送业务请求时,无需等待该业务请求之前最近一次发出的业务请求的响应结果。如,压力服务器发送业务请求1之后,无需等待目标服务器针对业务请求1返回响应结果,便可以在满足发包条件时,发送业务请求2。

可见,在本申请实施例中,在控制服务器向压力管理服务器发送了压力参数请求指令之后,该压力管理服务器可以调用用户通过其配置接口配置的请求构造函数,由于请求构造函数中包含用于生成业务请求的至少一种请求实例,因此,压力管理服务器可以基于请求实例以及预置的多个参数,自动构建出大批量的业务请求,从而无需用户手动编写大量用于确定业务系统的压力参数的业务请求,减少了用户的开发工作量较大,有利于减少由于编写大量业务请求所耗费的时长,进而可以提高确定业务系统的压力参数的效率。

同时,本申请实施例中,压力管理服务器的配置接口还可以接收用户配置的多个ip地址(或者其他类型的网络地址),从而使得用户通过该业务压力管理系统可以实现针对多个不同ip地址的压力参数的确定。

为了便于理解本申请实施例的业务压力管理系统的好处,下面结合该业务压力管理系统中各个设备的内部框架构成对本申请的业务压力管理方法进行介绍。

如,参见图3,其示出了本申请业务压力管理系统中各台设备的内部框架构成示意图。

由图3可以看出,业务压力管理系统中控制服务器31内设置有调频模块311、启动模块312以及暂停模块313。

其中,启动模块312用于响应用户的参数监控命令,向压力管理服务器发送压力参数请求指令。如,启动模块可以由启动按键以及启动控制芯片或者启动控制电路构成,用户点击启动按键时,启动控制芯片或者启动控制电路向压力管理服务器发送用于指示启动测试的信号。

该暂停模块313用于响应用户的暂停命令,向压力管理服务器发送暂停指令。如,暂停模块可以由暂停按键以及停止控制芯片或者电路构成,用户通过点击暂停按键,可以触发停止控制芯片或者电路生成一个用于指示压力管理服务器暂停压力参数获取的指示信号。

该调频模块311用于接收用户对于发包速率的设定或者调整,以合理控制压力参数获取过程中压力管理服务器向目标业务系统发送业务请求的频率。如,该调频模块可以设置有输入部件,该输入部件可以接收用户输入或者调整的发包速率。

结合图3可以看出,用户可以通过对控制服务器中各个模块进行操作,以控制业务压力管理系统启动或者暂停测试,并控制发包速率。

同时,由图3可以看出,压力管理服务器32有两部分组成,一部分是压力管理服务器的主体部分,一部分是压力管理服务器的自定义模块部分,其中,主体部分设置有限频模块321、异步通信模块322和统计模块323,自定义模块部分包括:请求构造模块324和响应解析模块325。

其中,自定义模块中设置有配置接口,该配置接口用于提供给用户向该自定义模块中配置请求构造模块的请求构造函数,以及响应解析模块中的解析函数。

如,结合图3可以看出,用户可以向该自定义模块中配置请求构造模块,具体的,根据用户对于不同业务系统的监控需求,通过该配置接口向请求构造模块中配置用于生成相应业务请求的请求构造函数。

同时,为了能够向控制服务器反馈相应的响应结果,还可以向该响应解析模块中配置解析函数,以通过解析函数获取压力管理服务器接收到的响应结果。

该压力管理服务器的主体部分中,限频模块321用于根据控制服务器发出的发包速率,并结合令牌桶算法,确定是否满足发包条件。

相应的,压力管理服务器的异步通信模块322可以响应控制服务器传输的压力参数请求指令或者暂停指令,并在需要对业务系统进行压力参数获取时,从请求构造模块调用请求构造函数,生成业务请求。且,该异步通信模块调用限频模块321,以在确定满足发包条件时,采用异步通信模式向业务系统发送业务请求。

同时,该异步通信模块在接收到针对业务请求的响应包时,调用响应解析模块中的解析函数,以通过解析模块将响应包通过统计模块323的接口上报给控制服务器。

同时,由图3可以看出,业务系统可以分为两部分,一部分是后端业务,一部分是后端二层业务。在本申请实施例中,根据实际需要,可以在压力管理服务器中配置不同的请求构造函数,以使得请求构造函数中可以包括,用于生成针对后端业务的业务请求的请求实例,以及用于生成针对后端二层业务的业务请求的请求实例中的一种或者两种,进而可以针对业务系统中不同业务层的服务器分别获取其压力参数。

结合图3对本申请实施例的业务压力管理方法进行介绍。如,参见图4,其示出了本申请一种业务压力管理方法又一个实施例的流程交互示意图,本实施例的方法可以包括:

s401,控制服务器在接收到用户输入的压力参数请求指令时,确定用户当前向控制服务器中设定的发包速率。

如,控制服务器中的调频模块可以获取到用户设定的发包速率。

s402,控制服务器生成压力参数请求指令,并向各台压力管理服务器发送携带该发包速率的压力参数请求指令。

如,控制服务器生成的压力参数请求指令会发送给压力管理服务器,而压力管理服务器中的异步通信模块会基于压力参数请求指令,生成业务请求;同时,压力参数请求指令中携带的发包速率会传输给压力管理服务器中的限频模块,以通过限频模块实现均匀发出模拟出的业务请求。

s403,压力管理服务器调用用户通过配置接口配置的请求构造函数。

其中,该请求构造函数中包含用于创建业务请求的至少一种请求实例。

s404,压力管理服务器利用至少一种请求实例以及预置的多个参数,构建用于压力参数确定的多个业务请求。

如图3所示,压力管理服务器中的异步通信模块调用请求构造模块中存储的请求构造函数,以生成业务请求。以对目标业务系统进行压力测试为例说明,压力管理服务器通过执行请求实例,并依据阈值的多个参数,可以构建出用于压力测试的多个业务请求。

其中,以上步骤s401到s404的具体过程可以参见前面实施例的相关介绍,在此不再赘述。

s405,压力管理服务器获取用户通过该配置接口配置的至少一个网络地址。

其中,该至少一个网络地址属于目标业务系统中至少一台目标服务器的地址。

本实施例以压力管理服务器中预先配置了目标业务系统的至少一台目标服务器的网络地址为例进行说明,但是对于配置其他网络标识的情况,也同样适用于本实施例。

s406,压力管理服务器按照该发包速率以及预置的令牌桶算法,确定当前是否满足发包条件。

如,压力管理服务器的限频模块会根据设定的该发包速率,以及预置的令牌桶算法检测当前是否满足发包条件,而异步通信模块会调用限频模块,以查询当前是否满足发包条件,以便在满足发包条件时,发送业务请求。

s407,压力管理服务器确定当前满足发包条件时,按照异步通信机制,将该多个业务请求中当前待发送的目标业务请求发送给目标业务系统的至少一台目标服务器。

s408,压力管理服务器接收该目标服务器针对该业务请求返回的响应结果。

s409,压力管理服务器调用用户通过该配置接口配置的解析函数,并通过该解析函数对该响应结果进行分类统计,并将该响应结果对应的分类统计结果发送给该控制服务器。

当然,在图4的实施例中,控制服务器在接收到用户调整后的发包速率之后,该控制服务器会向各台压力管理服务器发送调整后的发包速率。相应的,压力管理服务器会按照调整后的发包速率以及令牌桶算法,发出业务请求。

可选的,压力管理服务器对响应结果进行分类统计,可以按照表征压力参数的不同情况,将响应结果进行分类,从而得到该目标压力系统中具体的压力参数结果。

下面结合本申请的业务压力管理方法所适用的一种应用场景,对本申请实施例的方案进行介绍。如,参见图5,其示出了本申请的业务压力管理方法所适用的一种应用场景的示意图。在图5中以业务系统为即时通讯系统为例进行说明,并以对即时通讯系统进行压力测试为例进行说明。

由图5可以看出,该应用场景包括压力测试系统500和需要进行压力测试的即时通讯系统51。

其中,压力测试系统50包括控制服务器501和多台压力管理服务器502。

该即时通讯系统510包括:属于逻辑层的服务器511和属于数据层的服务器512。

如果用户需要对该即时通讯系统的逻辑层和数据层均进行压力测试,则可以在该多台压力管理服务器中配置请求构造函数,该请求构造函数至少包括:用于生成针对逻辑层的业务请求的请求实例a,以及用于生成针对数据层的业务请求的请求实例b。同时,用户还可以在压力管理服务器中配置即时通讯系统中调度服务器(或者负载均衡器)的ip地址。

同时,用户可以在控制服务器中配置该即时通讯系统对应的发包速率。可选的,考虑到即时通讯系统中业务层和逻辑层的性能瓶颈会有所差异,用户可以分别针对数据层和逻辑层设置不同的发包速率。

在完成以上配置之后,在需要对即时通讯系统进行压力测试时,用户只需向控制服务器发送一个参数监控命令,则该控制服务器会向各台压力管理服务器发送压力参数请求指令(此时可以认为是测试指令)以及该发包速率,如图5中s51所示。

相应的,压力管理服务器响应该压力参数请求指令,会调用请求构造函数,并利用请求实例a以及预置的多个参数,生成针对逻辑层的多个业务请求a;利用请求实例b以及预置的多个参数,生成针对数据层的多个业务请求b,如图5中s52所示。

同时,压力管理服务器会按照发包速率以及预置的令牌桶算法,并采用异步通信机制,满足发包条件时,按照预先配置的调度服务器的ip地址,向即时通讯系统发送一个业务请求a或者业务请求b,如图5中s53所示。当然,压力管理服务器按照逻辑层的发包速率以及预置的令牌桶算法,并采用异步通信机制,在满足逻辑层对应的发包条件时,向即时通讯系统发送一个业务请求a;同时,压力管理服务器按照数据层的发包速率以及预置的令牌桶算法,并采用异步通信机制,在满足数据层对应的发包条件时,向即时通讯系统发送一个业务请求b。

其中,即时通讯系统中调度服务器(或者负载均衡器)会根据接收到的业务请求的类型,将业务请求转发到逻辑层或者数据层的服务器。

相应的,压力管理服务器会分别获得针对业务请求a以及业务请求b的响应结果,如图5中s54。

压力管理服务器通过调用用户配置的解析函数,将各个业务请求对应的响应结果统计,并将统计结果上报给控制服务器,以便根据测试服务器汇总的所有统计结果对即时通讯系统进行性能瓶颈的分析及确定,如图5中s55所示。

另一方面,本申请还提供了一种业务压力管理装置。如,参见图6,其示出了本申请一种业务压力管理装置一个实施例的组成结构示意图,本实施例的装置应用于压力管理服务器,该装置可以包括:

指令接收单元601,用于接收控制服务器发送的压力参数请求指令;

函数调用单元602,用于响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;

请求构建单元603,用于执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;

标识获取单元604,用于获取预先配置的指向目标业务系统的至少一个网络标识;

请求发送单元605,用于依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统中的至少一台目标服务器;

结果统计单元606,用于获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

可选的,请求发送单元可以包括:

异步发送子单元,用于依据所述至少一个网络标识,并按照异步通信机制,发送所述多个业务请求。

在一种可能的实现方式中,所述标识获取单元可以包括:

标识获取子单元,用于获取预先配置的至少一个网络地址,所述至少一个网络地址属于目标业务系统中至少一台目标服务器的地址。

在一种可能的实现方式中,所述指令接收单元接收到的所述压力参数请求指令携带有压力参数请求的发包速率。在该种情况下,该请求发送单元还可以包括请求发送子单元。如,参见图7,其示出了本申请一种业务压力管理装置又一个实施例的组成结构示意图。

其中,图7所示的业务压力管理装置与图6的业务压力管理装置的不同之处在于:

该请求发送单元605可以包括:

请求发送子单元6051,用于依据所述至少一个网络标识,并按照所述发包速率,发送所述多个业务请求。

可选的,该请求发送子单元6051可以包括:

条件确定子单元,用于按照所述发包速率以及预置的令牌桶算法,确定当前是否满足发包条件;

第一发送子单元,用于当满足发包条件时,按照所述至少一个网络标识,发送所述多个业务请求中当前待发送的目标业务请求,以将所述目标业务请求发送给所述目标业务系统中的至少一台目标服务器。

在一种可能的实现方式中,所述结果统计单元606可以包括:

结果接收子单元6061,用于接收所述目标服务器针对所述业务请求返回的响应结果;

统计上报子单元6062,用于调用用户通过所述配置接口配置的解析函数,并通过所述解析函数对所述响应结果进行分类统计,并将所述响应结果对应的分类统计结果发送给所述控制服务器。

另一方面,本申请还提供了一种压力管理服务器。为了便于理解,参见图8,其示出了本申请实施例中压力管理服务器的一种组成结构示意图。在图8中,该压力管理服务器800可以包括:处理器801、存储器802、通信接口803、输入单元804和显示器805和通信总线806。

处理器801、存储器802、通信接口803、输入单元804、显示器805、均通过通信总线806完成相互间的通信。

在本申请实施例中,该处理器801,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路(application-specificintegratedcircuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件等。

该处理器可以调用存储器802中存储的程序,具体的,可以处理器可以执行以上图2-图5中压力管理服务器侧所执行的操作。

存储器802中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:

接收控制服务器发送的压力参数请求指令;

响应于压力参数请求指令,调用用户通过配置接口配置的请求构造函数,所述请求构造函数中包含用于创建业务请求且可执行的至少一种请求实例;

执行所述至少一种请求实例,并依据预置的多个参数,构建用于压力参数确定的多个业务请求;

获取预先配置的指向目标业务系统的至少一个网络标识;

依据所述至少一个网络标识,发送所述多个业务请求,以将所述多个业务请求发送给所述目标业务系统中的至少一台目标服务器;

获取并统计所述目标服务器针对所述业务请求返回的响应结果,以基于所述响应结果确定所述目标业务系统的压力参数结果。

在一种可能的实现方式中,该存储器802可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据压力管理服务器所创建的数据,比如,用户数据、配置的函数等等。

此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

该通信接口803可以为通信模块的接口,如gsm模块的接口。

本申请还可以包括显示器804和输入单元805,该显示器804包括显示面板,如触摸显示面板等;该输入单元可以触摸感应单元、键盘等等。

当然,图8所示的压力管理服务器结构并不构成对本申请实施例中压力管理服务器的限定,在实际应用中压力管理服务器可以包括比图8所示的更多或更少的部件,或者组合某些部件。

另一方面,本申请还提供了一种控制服务器,该控制服务器的构成可以与压力管理服务器的硬件构成相似,不同之处仅在于处理器所执行的操作。

另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现如上任意一个实施例中所描述的业务压力管理方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1