CN108845869B - 并发请求控制方法、装置、计算机设备和存储介质 - Google Patents
并发请求控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108845869B CN108845869B CN201810551785.XA CN201810551785A CN108845869B CN 108845869 B CN108845869 B CN 108845869B CN 201810551785 A CN201810551785 A CN 201810551785A CN 108845869 B CN108845869 B CN 108845869B
- Authority
- CN
- China
- Prior art keywords
- concurrent
- interface
- request
- requests
- concurrent request
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种并发请求控制方法、装置、计算机设备和存储介质。所述方法包括:接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;获取目标接口信息对应的目标接口正在执行的并发请求数;根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。采用本方法能够防止并发请求堆积。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种并发请求控制方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,对互联网产品服务器的性能要求越来高。当服务器通过接口接收到大量并发请求时,可能会严重超出了服务器的负荷能力,请求得不到及时的处理,会导致大量的并发请求堆积,将大量占用服务器资源,严重是可能会使服务器内存溢出,导致服务器崩溃。目前,采用对请求进行过滤的方法进行处理,过滤掉恶意请求或者根据用户的优先级进行处理,这些方法仍然存在着大量并发请求堆积的可能,造成服务器内存溢出导致服务器崩溃。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效防止大量并发请求堆积,使服务器稳定运行的并发请求控制方法、装置、计算机设备和存储介质。
一种并发请求控制方法,所述方法包括:
接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;
获取目标接口信息对应的目标接口正在执行的并发请求数;
根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
在其中一个实施例中,根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当接口并发请求数为第一级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;
若是,对超过第一级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在其中一个实施例中,根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当接口并发请求数为第二级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;
若是,对超过第二级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在其中一个实施例中,根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当接口并发请求数为第三级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和目标接口最大并发请求数之和,其中,第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数;
若是,对超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求进行驳回操作,否则将当前并发请求写入请求执行队列。
在其中一个实施例中,在接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数之前,还包括:
获取目标配置文件,将目标配置文件写入内存中;
将当前并发请求写入请求执行队列之后,还包括:
获取当前并发请求的执行时间,当执行时间超过预设时间期限时,发出请求超时报警提示,获取根据报警提示修改后的目标配置文件,将修改后的目标配置文件写入内存中;或者
监控内存占用值,当内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据溢出提示修改后的目标配置文件,将修改后的目标配置文件写入内存中。
在其中一个实施例中,所述方法还包括:
获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;
将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数;
将最大并发请求数写入内存中。
在其中一个实施例中,在获取目标接口在第一时间段的调用量、调用时间、内存占用值、请求响应时间和最大并发请求数之前,还包括:
获取目标接口历史时间段和历史时间段对应的接口调用信息;
将目标接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
一种并发请求控制装置,装置包括:
请求接收模块,用于接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;
请求数获取模块,用于获取目标接口信息对应的目标接口正在执行的并发请求数;
请求控制模块,用于根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;
获取目标接口信息对应的目标接口正在执行的并发请求数;
根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;
获取目标接口信息对应的目标接口正在执行的并发请求数;
根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
上述并发请求控制方法、装置、计算机设备和存储介质,通过接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;获取目标接口信息对应的目标接口正在执行的并发请求数;根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。根据目标配置文件中的不同级别的接口并发请求数,可以对服务器中系统对应的接口处理的并发请求数进行不同级别的控制,防止大量并发请求堆积,能够使服务器稳定运行。
附图说明
图1为一个实施例中并发请求控制方法的应用场景图;
图2为一个实施例中并发请求控制方法的流程示意图;
图3为一个实施例中确定驳回的并发请求的流程示意图;
图4为另一个实施例中确定驳回的并发请求的流程示意图;
图5为再一个实施例中确定驳回的并发请求的流程示意图;
图6为一个实施例中得到最大并发请求数的流程示意图;
图7为一个实施例中训练得到预设最大并发请求数模型的流程示意图;
图8为一个实施例中并发请求控制装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的并发请求控制方法,可以应用于如图1所示的应用环境中。其中,多个终端通过网络与控制服务器102通过网络进行通信,控制服务器102与多个控制的系统服务器通过网络进行通信。控制服务器102接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;控制服务器102获取目标接口信息对应的目标接口正在执行的并发请求数;控制服务器102根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,控制服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种并发请求控制方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数。
其中,并发请求是指是服务器同时接收终端发送的多个请求,该请求可以是调用请求。目标接口信息包括目标接口地址信息和名称信息等,可以根据目标接口信息确定目标接口,其中目标接口能够将接收到请求在一定时间内进行处理。接口是指API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。
具体地,控制服务器接收到当前的并发请求,该并发请求可以是多个终端发送的请求,每个终端发送的请求都携带有目标接口信息,然后控制服务器首先会根据当前并发请求读取预先配置好的保存在控制服务器内存中的配置文件。该配置文件中配置不同级别的接口并发请求数,包括第一级别接口并发请求数、第二级别接口并发请求数和第三级别接口并发请求数。
S204,获取目标接口信息对应的目标接口正在执行的并发请求数。
其中,正在执行的并发请求数是指目标接口正在处理的请求数量,该正在执行的并发请求数不超过目标接口对应的最大并发请求数。
具体地,根据目标接口信息查找到对应的目标接口,可以是根据目标接口地址找到对应的目标接口,获取到该目标接口正在处理的并发请求数。
S206,根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
具体地,根据目标配置文件中接口并发请求数和目标接口正在执行的并发请求数进行计算确定驳回的当前并发请求,然后对驳回的前并发请求进行驳回操作。其中驳回的当前并发请求可以是接收到当前并发请求的部分,也可以是接收到当前并发请求的全部,还可以不驳回接收到的当前并发请求。然后将没有驳回的当前并发请求写入请求执行对列,即根据目标接口信息发送到对应的系统服务器,使系统服务器接口对写入请求执行对列的请求进行处理,当处理完成时将处理结果发送给控制服务器,控制服务器再将处理结果返回给对应的终端。
上述并发请求控制方法中,通过接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;获取目标接口信息对应的目标接口正在执行的并发请求数;根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。根据目标配置文件中的接口并发请求数,可以对系统中接口处理的并发请求数进行不同级别的控制,防止大量并发请求堆积,能够使服务器稳定运行。
在一个实施例中,如图3所示,步骤S203,即根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
S302,接口并发请求数为第一级别接口并发请求数。
其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数,即读取的目标配置文件中接口并发请求数为第一级别接口并发请求数时,控制服务器中所有的系统服务器中的接口的最大并发请求数都是相同的,都被控制为第一级别接口并发请求数。
具体地,当控制服务器读取到目标配置文件的接口并发请求数为第一级别接口并发请求数时,此时,所有系统服务器中对应的接口处理并发请求的数量被控制为配置文件中第一级别接口并发请求数,即此时所有接口处理的最大并发请求数为第一级别接口并发请求数。其中,控制服务器根据预先设置的规则读取配置文件,依次从接口并发请求数为第一级别接口并发请求数的配置文件到接口并发请求数为第三级别接口并发请求数的配置文件进行读取,只要读取到配置文件中的接口并发请求数,并读取到对应的级别,就停止继续读取配置文件,其中,可预先在配置文件中设置参数,该参数用于控制是否能够读取该参数对应的配置文件中的接口并发请求数。若参数是读取参数,则可以读取该配置文件对应的接口并发请求数,若参数是无法读取参数,则无法读取该配置文件对应的接口并发请求数。例如,可在配置文件中设置读取参数Y,该参数Y对应的接口并发请求数为第一级别接口并发请求数,当读取配置文件时,首先读取到参数Y,则再读取配置文件中的第一级别接口并发请求数。也可在在配置文件中设置无法读取参数N,该参数N对应的接口并发请求数为第一级别接口并发请求数,当读取配置文件时,首先读取到参数N,则该参数N对应的配置文件中的第一级别接口并发请求数不可读取。
在一个实施例中,当所有的配置文件都读取失败时,直接将获取到的当前并发请求写入请求执行队列。
S304,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数。
具体地,计算目标接口正在执行的并发请求数和当前并发请求数之和,读取到的是目标配置文件中为第一级别接口并发请求数,判断得到的目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,当得到的目标接口正在执行的并发请求数和当前并发请求数之和超过第一级别接口并发请求数时,执行步骤S304a,当得到的目标接口正在执行的并发请求数和当前并发请求数之和没有超过第一级别接口并发请求数时,执行步骤S304b。
S304a,对超过第一级别接口并发请求数的并发请求进行驳回操作。
具体地,当得到的目标接口正在执行的并发请求数和当前并发请求数之和超过第一级别接口并发请求数时,控制服务器将超过第一级别接口并发请求数的并发请求驳回,即向超过第一级别接口并发请求数的并发请求对应的终端返回请求驳回的提示。
S304b,将当前并发请求写入请求执行队列。
当得到的目标接口正在执行的并发请求数和当前并发请求数之和没有超过第一级别接口并发请求数时,将当前并发请求写入请求执行队列,使系统服务器接口对写入请求执行对列的请求进行处理,得到系统服务器接口处理结果,并返回处理结果给对应的终端。
上述实施例中,当接口并发请求数为第一级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;若是,对超过第一级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列,能够将控制服务器中系统对应接口处理的最大并发请求数进行统一,限制控制服务器中系统对应接口处理的并发请求数,使得服务器能够稳定运行。
在一个实施例中,如图4所示,S203,即根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
S402,接口并发请求数为第二级别接口并发请求数。
其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数,用于控制对应的关联系统的接口最大并发请求数。系统是指处理各种业务请求的应用系统,控制服务器中可以统一s控制多个系统,每个系统都有各自对应的系统服务器
具体地,当目标配置文件中接口并发请求数为第二级别接口并发请求数时,此时,目标接口关联的系统服务器中对应的所有接口处理并发请求的数量被限制为第二级别接口并发请求数。例如,若第二级别接口并发请求数6,则目标接口关联的系统所有接口处理并发请求的数量被限制为6,即该系统对应的接口最大能处理并发请求的数为6。
S404,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数。
具体地,计算目标接口正在执行的并发请求数和当前并发请求数之和,读取到第二级别接口并发请求数,即得到了目标接口关联系统控制的最大并发请求数。判断得到的目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,当得到的目标接口正在执行的并发请求数与当前并发请求数之和超过第二级别接口并发请求数时,执行步骤S404a,否则,执行步骤S404b。
S404a,对超过第二级别接口并发请求数的并发请求进行驳回操作。
具体地,得到的目标接口正在执行的并发请求数和当前并发请求数之和超过第二级别接口并发请求数时,将超过第二级别接口并发请求数的并发请求驳回,即向超过第二级别接口并发请求数的并发请求对应的终端返回请求驳回的提示。
S404b,将当前并发请求写入请求执行队列。
当得到的目标接口正在执行的并发请求数和当前并发请求数之和没有超过第二级别接口并发请求数时,将当前并发请求写入请求执行队列,使系统服务器接口对写入请求执行对列的请求进行处理,得到系统服务器接口处理的结果,并向当前并发请求对应的终端返回处理结果。
上述实施例中,当接口并发请求数为第二级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;若是,对超过第二级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列,通过对目标接口对应的系统的最大并发请求数进行控制,使得系统对应接口处理的并发请求数不会超过最大并发请求数,能够使服务器稳定运行。
在一个实施例中,可以根据不同系统对应接口的处理并发请求能力的不同,可以在配置文件中配置不同系统对应的不同的最大并发请求数,即每个系统都有对应的第二级别接口并发请求数,能够合理利用服务器的资源且能够使服务器稳定运行。
在一个实施例中,如图5所示,即根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
S502,接口并发请求数为第三级别接口并发请求数。
其中,第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数,即服务器中的每个接口都有对应的第三级别接口并发请求数。
具体地,当接口并发请求数为第三级别接口并发请求数时,此时,该目标接口被限制处理并发请求的数量为该目标接口对应的最大并发请求数和第三级别接口并发请求数之和,即目标接口最大并发请求数与目标接口最大等待请求数之和。优选的,最大等待请求数可以是最大并发请求数的20%。
S504,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和目标接口最大并发请求数之和。
其中,计算目标接口正在执行的并发请求数和当前并发请求数之和,读取到配置文件中第三级别接口并发请求数和目标接口对应的最大并发请求数,并计算最大并发请求数和第三级别接口并发请求数之和,当目标接口正在执行的并发请求数和当前并发请求数之和超过目标接口对应的接口最大并发请求数和目标接口对应的接口最大等待请求数之和,执行步骤S504a,否则,执行步骤S504b。
S504a,对超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求进行驳回操作。
具体地,当目标接口正在执行的并发请求数和当前并发请求数之和第三级别接口并发请求数和目标接口最大并发请求数之和时,说明该目标接口的并发请求数被控制为第三级别接口并发请求数和目标接口最大并发请求数之和。则将超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求驳回,即向对应的终端返回请求驳回的提示。
S504b,将当前并发请求写入请求执行队列。
当目标接口正在执行的并发请求数和当前并发请求数之和没有超过第三级别接口并发请求数和目标接口最大并发请求数之和时,将当前并发请求写入请求等待执行队列,使目标接口对写入请求等待执行对列的请求进行处理,得到处理结果,并向当前并发请求对应的终端返回处理结果。
上述实施例中,当接口并发请求数为第三级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过目标接口对应的接口最大并发请求数和目标接口对应的第三级别接口并发请求数之和;若是,将超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求驳回,否则将当前并发请求写入请求等待执行队列,可以精确控制目标接口的可执行的并发请求数,防止目标接口并发请求堆积,能够使服务器稳定运行。
在一个实施例中,当服务器中系统对应的接口数量超过预设阈值时,可以将接口对应的第三级别接口并发请求数配置在数据库中,第三级别接口并发请求数和第三级别接口并发请求数依然配置在配置文件中,当需要读取第三级别接口并发请求数时,从数据库中读取目标接口对应的第三级别接口并发请求数。例如,当各个系统服务器中对应的接口总数量超过300个时,可以将300个接口对应的第三级别接口并发请求数配置在数据库中,可以提高第三级别接口并发请求数读取的效率,更方便的设置好配置文件。
在一个实施例中,可以使用数据库来配置不同级别的接口并发请求数。当需要读取接口并发请求数时,直接从数据库中读取第一级别接口并发请求数或者第二级别接口并发请求数或者第三级别接口并发请求数,使用数据库设置接口并发请求数,使用更方便。
在一个实施例中,在步骤S202之前,即在接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数之前,还包括:
获取目标配置文件,将目标配置文件写入内存中。
具体地,服务器预先获取到目标配置文件,并将目标配置文件写入内存中,服务器在需要读取目标配置文件时可以直接从内存中读取,能够提高读取目标配置文件的效率且减少服务器性能损耗。
则将当前并发请求写入请求执行队列之后,还包括:
获取当前并发请求的执行时间,当执行时间超过预设时间期限时,发出请求超时报警提示,获取根据报警提示修改后的目标配置文件,将修改后的目标配置文件写入内存中;或者
监控内存占用值,当内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据溢出提示修改后的目标配置文件,将修改后的目标配置文件写入内存中。
具体地,将当前并发请求写入请求执行队列时,记录对应的执行时间。当执行时间超过预设时间期限时,说明该接口发生异常,并发请求无法得到及时的处理,此时服务器发出请求超时报警提示,然后获取修改后的目标配置文件,其中,可以修改发生异常的接口对应的目标配置文件中的第三级别接口并发请求数,也可以修改发生异常的接口关联系统对应的目标配置文件中的第二级别接口并发请求数,还可以直接修改目标配置文件中的第一级别接口并发请求数,然后将修改后的目标配置文件重新写入内存中。或者服务器监控在接口处理并发请求时使用的内存,当内存占用值超过预设预警值时,即说明接口处理并发请求时出现异常。此时,可以修改发生异常的接口对应的目标配置文件中的第三级别接口并发请求数,也可以修改发生异常的接口关联系统对应的目标配置文件中的第二级别接口并发请求数,还可以直接修改目标配置文件中的第一级别接口并发请求数,然后将修改后的目标配置文件重新写入内存中。上述实施例中,当服务器监测到接口发生异常时,可以通过修改目标配置文件不等级别的接口并发请求数来使服务器稳定运行,防止服务器出现崩溃。
在一个实施例中,如图6所示,所述方法还包括:
S602,获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数。
其中,调用量是指该接口在第一时间段中接收到接口并发请求的总次数。内存占用峰值是指在第一时间段中目标接口处理并发请求时服务器内存使用的最高值。请求响应最长时间是指目标接口处理并发请求时响应请求的最长时间。最大并发请求数是指该目标接口可同时执行请求数的最大值。
具体地,服务器在第一时间段内对目标接口进行监控,获取到目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数。例如,可以将一年划分为不同的时间段,比如12个时间段,每个月是一个时间段,服务器可以监控目标接口,获取第5个时间段接口的调用信息,包括调用量10000次、内存占用峰值900M、请求响应最长时间0.1s和最大并发请求数6。
S604,将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数。
其中,预设最大并发请求数模型是指预先训练好的可以得到目标接口第二时间段的最大并发请求数的机器学习模型。
具体地,可以将时间段进行编码,每个时间段对应一个编码,将第一时间段的编码、调用量、内存占用峰值、请求响应最长时间和最大并发请求数组成输入向量,输入到预设最大并发请求数模型中,得到输出向量,根据输出向量得到第二时间段的最大并发请求数。例如,按照上述例子,获取第5个时间段接口的调用信息,包括调用量10000次、内存占用峰值900M、请求响应最长时间0.1s和最大并发请求数6。若第5个时间段的编码为5,得到的输入向量为[5,10000,900,0.1,6],输入到预设最大并发请求数模型中,得到输出向量为[7],则得到的第6时间段的最大并发请求数为7.
S606,将最大并发请求数写入内存中。
具体地,将得到的目标接口第二时间段的最大并发请求数写入内存,更新内存中保存的目标接口对应的最大并发请求数。
上述实施例中,通过获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数;将最大并发请求数写入内存中,可以预测下一个时间段内目标接口可处理的最大并发请求数,从而不需要人为的去修改最大并发请求数,方便使用。
在一个实施例中,如图7所示,在步骤S602之前,即在获取目标接口在第一时间段的调用量、内存占用值、请求响应时间和最大并发请求数之前,还包括:
S702,获取目标接口历史时间段和历史时间段对应的接口调用信息。
具体地,将过去的历史时间划分为不同的时间段,获取到每个时间段的目标接口的接口调用信息,包括调用量、调用时间、内存占用值、请求响应时间和最大并发请求数。例如,将过去的一年划分为12个时间段,每个月为一个时间段,获取到每个时间段目标接口的接口调用信息。比如,第一个月即第一个时间段的调用量为8000、内存占用值800、请求响应时间0.09和最大并发请求数6,第二时间段即第二个月的最大并发请求数为8.
S704,将目标接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
其中,神经网络可以是BP神经网络(back propagation),BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络。其实现的算法是BP算法,激活函数可以采用其中X为输入的特征向量,f(x)为输出的特征向量。
具体地,将目标接口历史第一时间段和历史第一时间段对应的接口调用信息组成输入向量,将历史第二时间段的最大并发请求数作为输出向量在BP神经网络中进行训练,通过大量的目标接口历史时间段和历史时间段对应的接口调用信息进行训练,当训练完成时,即BP神经网络的代价函数达到预设阈值时,得到预设最大并发请求数模型。
上述实施例中,通过获取目标接口历史时间段和历史时间段对应的接口调用信息,将目标接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。预先训练好预设最大并发请求数模型,可以直接使用,提高了得到最大并发请求数的效率。
在一个具体地实施例中,终端向服务器发送当前并发请求为9,该当前并发请求携带目标接口信息,服务器接收到并发请求后,读取目标配置文件,该目标配置文件中包括第一级别接口并发请求数和第二级别接口并发请求数,且第一级别接口并发请求数和第二级别接口并发请求数对的的参数都为不可读取参数。则从数据库中读取目标接口对应的第三级别接口并发请求数,即根据目标接口名称读取到第三级别接口并发请求数的读取参数,然后在从数据库中读取到最大并发请求数为6和最大的等待请求数为1,此时根据目标接口地址获取到该目标接口正在执行的并发请求数为0,判断当前并发请求数9和正在执行的并发请求数为0之和超过最大并发请求数为6和最大的等待请求数为1之和,将超过的当前并发请求数2个并发请求驳回,即向对应终端返回驳回提示,然后将未驳回的当前并发请求数7发送给目标接口对应的系统服务器,系统服务器对应的目标接口将并发请求进行执行,然后向对应终端返回执行结果。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种并发请求控制装置800,包括:请求接收模块802、请求数获取模块804和请求控制模块806,其中:
请求接收模块802,用于接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;
请求数获取模块804,用于获取目标接口信息对应的目标接口正在执行的并发请求数;
请求控制模块806,用于根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
上述实施例中,通过请求接收模块802接收到目标接口的当前并发请求,在请求数获取模块804获取到目标接口正在执行的并发请求数,通过接口请求控制模块806控制当前并发请求的驳回,防止了大量并发请求堆积,能够使服务器稳定运行。
在一个实施例中,请求控制模块806,包括:
一级判断模块,用于当接口并发请求数为第一级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;
一级控制模块,用于若是,对超过第一级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,请求控制模块806,包括:
二级判断模块,用于当接口并发请求数为第二级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;
二级控制模块,用于若是,对超过第二级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,请求控制模块806,包括:
三级判断模块,用于当接口并发请求数为第三级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和目标接口最大并发请求数之和,其中,第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数;
三级控制模块,用于若是,对超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求进行驳回操作,否则将当前并发请求写入请求执行队列。
在一个实施例中,并发请求控制装置800,还包括:
配置获取模块,用于获取目标配置文件,将目标配置文件写入内存中;
并发请求控制装置800,还包括:
第一异常处理模块,用于获取当前并发请求的执行时间,当执行时间超过预设时间期限时,发出请求超时报警提示,获取根据报警提示修改后的目标配置文件,将修改后的目标配置文件写入内存中;或者
第二异常处理模块,用于监控内存占用值,当内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据溢出提示修改后的目标配置文件,将修改后的目标配置文件写入内存中。
在一个实施例中,并发请求控制装置800,还包括:
信息获取模块,用于获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;
最大并发请求数得到模块,将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数;
写入模块,用于将最大并发请求数写入内存中。
在一个实施例中,并发请求控制装置800,还包括:
历史信息获取模块,用于获取接口历史时间段和历史时间段对应的接口调用信息;
模型训练模块,用于将接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
关于并发请求控制装置的具体限定可以参见上文中对于并发请求控制方法的限定,在此不再赘述。上述并发请求控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储配置状态数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种并发请求控制方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;获取目标接口信息对应的目标接口正在执行的并发请求数;根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当接口并发请求数为第一级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;若是,对超过第一级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当接口并发请求数为第二级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;若是,对超过第二级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当接口并发请求数为第三级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和目标接口最大并发请求数之和,其中,第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数;若是,对超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求进行驳回操作,否则将当前并发请求写入请求执行队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标配置文件,将目标配置文件写入内存中;处理器执行计算机程序时还实现以下步骤:获取当前并发请求的执行时间,当执行时间超过预设时间期限时,发出请求超时报警提示,获取根据报警提示修改后的目标配置文件,将修改后的目标配置文件写入内存中;或者监控内存占用值,当内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据溢出提示修改后的目标配置文件,将修改后的目标配置文件写入内存中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数;将最大并发请求数写入内存中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标接口历史时间段和历史时间段对应的接口调用信息;将目标接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收当前并发请求,当前并发请求携带目标接口信息,根据当前并发请求读取目标配置文件,目标配置文件用于配置不同级别的接口并发请求数;获取目标接口信息对应的目标接口正在执行的并发请求数;根据不同级别的接口并发请求数和目标接口正在执行的并发请求数,对当前并发请求中的部分并发请求或全部并发请求进行驳回操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接口并发请求数为第一级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第一级别接口并发请求数,其中,第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;若是,对超过第一级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接口并发请求数为第二级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第二级别接口并发请求数,其中,第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;若是,对超过第二级别接口并发请求数的并发请求进行驳回操作,否则,将当前并发请求写入请求执行队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接口并发请求数为第三级别接口并发请求数时,判断目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和目标接口最大并发请求数之和,其中,第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数;若是,对超过第三级别接口并发请求数和目标接口最大并发请求数之和的并发请求进行驳回操作,否则将当前并发请求写入请求执行队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取目标配置文件,将目标配置文件写入内存中;处理器执行计算机程序时还实现以下步骤:获取当前并发请求的执行时间,当执行时间超过预设时间期限时,发出请求超时报警提示,获取根据报警提示修改后的目标配置文件,将修改后的目标配置文件写入内存中;或者监控内存占用值,当内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据溢出提示修改后的目标配置文件,将修改后的目标配置文件写入内存中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取目标接口在第一时间段的调用信息,调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;将第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到目标接口第二时间段的最大并发请求数;将最大并发请求数写入内存中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取目标接口历史时间段和历史时间段对应的接口调用信息;将目标接口历史第一时间段和历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种并发请求控制方法,所述方法包括:
接收当前并发请求,所述当前并发请求携带目标接口信息,根据所述当前并发请求读取目标配置文件,所述目标配置文件用于配置不同级别的接口并发请求数,包括所有接口统一的第一级别接口并发请求数、每个系统对应接口统一的第二级别接口并发请求数和每个接口对应的第三级别接口并发请求数,所述系统是指处理各种业务请求的应用系统,所述第三级别接口并发请求数为所述每个接口对应的接口最大等待请求数;
获取所述目标接口信息对应的目标接口正在执行的并发请求数;
根据所述不同级别的接口并发请求数和所述目标接口正在执行的并发请求数,对所述当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:当所述接口并发请求数为第一级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第一级别接口并发请求数, 当所述接口并发请求数为第二级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第二级别接口并发请求数,当所述接口并发请求数为第三级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第三级别接口并发请求数和所述目标接口最大并发请求数之和。
2.根据权利要求1所述的方法,其特征在于,所述根据所述不同级别的接口并发请求数和所述目标接口正在执行的并发请求数,对所述当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当所述接口并发请求数为第一级别接口并发请求数时,判断所述目标接口正在执行的并发请求数和当前并发请求数之和是否超过所述第一级别接口并发请求数,其中,所述第一级别接口并发请求数为服务器所有接口统一的最大并发请求数;
若是,对超过所述第一级别接口并发请求数的并发请求进行驳回操作,否则,将所述当前并发请求写入请求执行队列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述不同级别的接口并发请求数和所述目标接口正在执行的并发请求数,对所述当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当所述接口并发请求数为第二级别接口并发请求数时,判断所述目标接口正在执行的并发请求数和当前并发请求数之和是否超所述第二级别接口并发请求数,其中,所述第二级别接口并发请求数为服务器中系统对应接口统一的最大并发请求数;
若是,对超过所述第二级别接口并发请求数的并发请求进行驳回操作,否则,将所述当前并发请求写入请求执行队列。
4.根据权利要求1所述的方法,其特征在于,所述根据所述不同级别的接口并发请求数和所述目标接口正在执行的并发请求数,对所述当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:
当所述接口并发请求数为第三级别接口并发请求数时,判断所述目标接口正在执行的并发请求数和当前并发请求数之和是否超过第三级别接口并发请求数和所述目标接口最大并发请求数之和,其中,所述第三级别接口并发请求数为服务器中每个接口对应的接口最大等待请求数;
若是,对超过第三级别接口并发请求数和所述目标接口最大并发请求数之和的并发请求进行驳回操作,否则将所述当前并发请求写入请求执行队列。
5.根据权利要求2至4任意一项所述的方法,其特征在于,接收当前并发请求,所述当前并发请求携带目标接口信息,根据所述当前并发请求读取目标配置文件,所述目标配置文件用于配置不同级别的接口并发请求数之前,还包括:
获取目标配置文件,将所述目标配置文件写入内存中;
所述将所述当前并发请求写入请求执行队列之后,还包括:
获取所述当前并发请求的执行时间,当所述执行时间超过预设时间期限时,发出请求超时报警提示,获取根据所述报警提示修改后的目标配置文件,将所述修改后的目标配置文件写入内存中;或者
监控内存占用值,当所述内存占用值超过预设预警值时,发出内存即将溢出提示,获取根据所述溢出提示修改后的目标配置文件,将所述修改后的目标配置文件写入内存中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标接口在第一时间段的调用信息,所述调用信息包括调用量、内存占用峰值、请求响应最长时间和最大并发请求数;
将所述第一时间段、调用量、内存占用峰值、请求响应最长时间和最大并发请求数输入到预设最大并发请求数模型中,得到所述目标接口第二时间段的最大并发请求数;
将所述最大并发请求数写入内存中。
7.根据权利要求6所述的方法,其特征在于,在所述获取所述目标接口在第一时间段的调用量、调用时间、内存占用值、请求响应时间和最大并发请求数之前,还包括:
获取所述目标接口历史时间段和历史时间段对应的接口调用信息;
将所述目标接口历史第一时间段和所述历史第一时间段对应的接口调用信息作为神经网络的输入,将历史第二时间段的最大并发请求数作为神经网络的输出进行训练,得到预设最大并发请求数模型。
8.一种并发请求控制装置,其特征在于,所述装置包括:
请求接收模块,用于接收当前并发请求,所述当前并发请求携带目标接口信息,根据所述当前并发请求读取目标配置文件,所述目标配置文件用于配置不同级别的接口并发请求数, 包括所有接口统一的第一级别接口并发请求数、每个系统对应接口统一的第二级别接口并发请求数和每个接口对应的第三级别接口并发请求数,所述系统是指处理各种业务请求的应用系统,所述第三级别接口并发请求数为所述每个接口对应的接口最大等待请求数;
请求数获取模块,用于获取所述目标接口信息对应的目标接口正在执行的并发请求数;
请求控制模块,用于根据所述不同级别的接口并发请求数和所述目标接口正在执行的并发请求数,对所述当前并发请求中的部分并发请求或全部并发请求进行驳回操作,包括:当所述接口并发请求数为第一级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第一级别接口并发请求数, 当所述接口并发请求数为第二级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第二级别接口并发请求数,当所述接口并发请求数为第三级别接口并发请求数时,判断所述当前并发请求的数量和所述目标接口正在执行的并发请求数之和是否超过所述第三级别接口并发请求数和所述目标接口最大并发请求数之和。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810551785.XA CN108845869B (zh) | 2018-05-31 | 2018-05-31 | 并发请求控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810551785.XA CN108845869B (zh) | 2018-05-31 | 2018-05-31 | 并发请求控制方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845869A CN108845869A (zh) | 2018-11-20 |
CN108845869B true CN108845869B (zh) | 2023-04-07 |
Family
ID=64210287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810551785.XA Active CN108845869B (zh) | 2018-05-31 | 2018-05-31 | 并发请求控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108845869B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347982A (zh) * | 2018-11-30 | 2019-02-15 | 网宿科技股份有限公司 | 一种数据中心的调度方法及装置 |
CN110245029A (zh) * | 2019-05-21 | 2019-09-17 | 中国平安财产保险股份有限公司 | 一种数据处理方法、装置、存储介质和服务器 |
CN111638949A (zh) * | 2020-04-28 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 时间序列数据分段构建方法、装置及计算机设备 |
CN113612972B (zh) * | 2021-08-09 | 2023-12-05 | 深圳市猿人创新科技有限公司 | 一种终端监控设备通信方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148764A (zh) * | 2011-05-09 | 2011-08-10 | 杭州华三通信技术有限公司 | 一种基于QoS业务的数据处理方法和设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701709B (zh) * | 2013-12-13 | 2015-07-01 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及系统 |
CN104168133B (zh) * | 2014-07-11 | 2017-07-18 | 广州联智信息科技有限公司 | 一种动态配置api访问量的方法和网关及系统 |
CN104683457A (zh) * | 2015-02-13 | 2015-06-03 | 小米科技有限责任公司 | 并发控制的方法及装置 |
CN105262826A (zh) * | 2015-10-29 | 2016-01-20 | 福建天晴数码有限公司 | 接口处理数量的调整方法及系统 |
CN106803815B (zh) * | 2015-11-26 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种流量控制方法和装置 |
US10367747B2 (en) * | 2016-07-14 | 2019-07-30 | International Business Machines Corporation | Flow controller automatically throttling rate of service provided by web API |
CN107770088B (zh) * | 2017-09-06 | 2021-12-24 | 创新先进技术有限公司 | 一种流量控制方法及装置 |
CN107609976A (zh) * | 2017-09-25 | 2018-01-19 | 中国银行股份有限公司 | 一种交易接口的限流方法及装置 |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
-
2018
- 2018-05-31 CN CN201810551785.XA patent/CN108845869B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148764A (zh) * | 2011-05-09 | 2011-08-10 | 杭州华三通信技术有限公司 | 一种基于QoS业务的数据处理方法和设备 |
Non-Patent Citations (1)
Title |
---|
杨叶宁.Mashup应用开发技术研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2017,I139-165. * |
Also Published As
Publication number | Publication date |
---|---|
CN108845869A (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845869B (zh) | 并发请求控制方法、装置、计算机设备和存储介质 | |
CN108933993B (zh) | 短信缓存队列选择方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN109787908B (zh) | 服务器限流方法、系统、计算机设备及存储介质 | |
CN109542428B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN110928653B (zh) | 跨集群任务的执行方法、装置、计算机设备和存储介质 | |
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN108834086B (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN109992473B (zh) | 应用系统的监控方法、装置、设备及存储介质 | |
CN110851159B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN110399241B (zh) | 任务异常处理方法、装置、计算机设备和可读存储介质 | |
CN112231054B (zh) | 基于k8s集群的多模型推理服务部署方法及装置 | |
CN111738404A (zh) | 模型训练任务处理方法、装置、电子设备和存储介质 | |
CN112527357A (zh) | 服务热加载更新方法、装置、计算机设备和存储介质 | |
CN110727698A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN113723956A (zh) | 异常监控方法、装置、设备及存储介质 | |
CN111260253A (zh) | 信息发送方法、装置、计算机设备及存储介质 | |
CN114237852A (zh) | 一种任务调度方法、装置、服务器及存储介质 | |
CN117170894A (zh) | 基于实时计算的事件中心管理方法和装置 | |
CN110969430B (zh) | 可疑用户的识别方法、装置、计算机设备和存储介质 | |
CN114186976A (zh) | 工作流程流转方法、装置、计算机设备及存储介质 | |
CN112766067A (zh) | 3d人脸识别模组校准数据的获取方法、系统、计算机和存储介质 | |
CN108834087B (zh) | 短信发送方法、装置、计算机设备和存储介质 | |
CN113824590A (zh) | 微服务网络的问题预测方法、计算机设备和存储介质 | |
CN112732819A (zh) | 基于etl的数据处理方法、装置、设备和存储介质 |
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 |