过载保护方法、过载保护装置、介质和设备与流程

文档序号:16326820发布日期:2018-12-19 05:58阅读:262来源:国知局
过载保护方法、过载保护装置、介质和设备与流程

本发明涉及互联网通信领域,具体涉及一种过载保护方法、过载保护装置、介质和设备。

背景技术

过载保护,是互联网服务器经常使用的技术,用来防止服务器请求量过大导致服务完全受损的一种手段。任何服务器在一定时间内可处理的客户端请求的数量是有限的,但是服务器经常会接收到过多的请求而无法及时有效地处理,如果服务器没有足够的能力处理这些请求,会导致服务器过载并发生宕机等后果。因此,为了防止上述情况发生,要对服务器进行过载保护。

现有技术中,常用于服务器中的过载保护方法为,设计一个毫秒级的统计数组a[1000],把最近1000ms的请求量放到对应的数组位置上,还设计一些滑动指针,进行起点控制;如果有请求到达服务器,则对数组所有值做累加,如果请求数量超过了预定阈值,就报告过载。当查询过载情况时,也是需要累计1000个数组内的所有值累加获得。

因此,现有技术的过载保护方法计算的复杂度较高,并且对服务器cpu的消耗较高。



技术实现要素:

为了解决上述问题。本发明提供一种过载保护方法、过载保护装置、介质和设备。

根据本发明的第一方面提供了一种过载保护方法,包括:获取待处理请求到达服务器的到达时间;当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

可选地,该方法还包括,当到达时间与当前时间之差为一秒时,将第二请求数更新为第一请求数,将当前时间更新为到达时间,并且更新第一请求数为1。

可选地,该方法还包括,当到达时间与当前时间之差大于一秒时,将第一请求数更新为1,第二请求数更新为0,并且将当前时间更新为到达时间。

可选地,该方法还包括,查询第二请求数,以获得服务器上一秒的请求数。

根据本发明的第二方面,提供一种过载保护装置,包括:获取模块,用于获取待处理请求到达服务器的到达时间;请求累计模块,用于当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;请求处理模块,用于当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

可选地,请求累计模块还可以用于当到达时间与当前时间之差为一秒时,将第二请求数更新为第一请求数,将当前时间更新为到达时间,并且更新第一请求数为1。

可选地,请求累计模块还可以用于当到达时间与当前时间之差大于一秒时,将第一请求数更新为1,第二请求数更新为0,并且将当前时间更新为到达时间。

可选地,过载保护装置还包括查询模块,用于查询第二请求数,以获得服务器上一秒的请求数。

根据本发明的第三方面,还提供一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当该指令被执行时,使得处理器执行过载保护方法,该指令包括:获取待处理请求到达服务器的到达时间;当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

根据本发明的第四方面,还提供一种设备,包括存储器,存储有计算机可执行指令,处理器,处理器被配置为执行指令以实施过载保护的过程,该过程包括:获取待处理请求到达服务器的到达时间;当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

本发明实施方式与现有技术相比,主要区别及其效果在于:

本发明实施例的过载保护方法,利用待处理请求的到达时间与服务器的当前时间,并根据两者之间预定的差值关系来计算待处理请求的总数,解决了现有过载保护方法中累加请求数量过于复杂的问题,达到降低过载判断时的计算复杂度,降低cpu的计算资源的消耗的效果,特别是在服务器临界过载状态时,能够有效减轻服务器压力。

附图说明

图1示出了本发明的方法的计算机终端的硬件结构框图。

图2示出了根据本发明实施例的过载保护方法的流程图。

图3示出了根据本发明实施例的过载保护装置的模块示意图。

具体实施方式

为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明实施方式,提供了一种过载保护方法的实施方式,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请方式所提供的方法实施方式可以在移动终端、计算机终端或者类似的运算装置(如ecu(electroniccontrolunit,电子控制单元))中执行。以运行在计算机终端上为例,图1是根据本发明实施方式的过载保护方法的计算机终端的硬件结构框图。如图1所示,计算机终端100可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器cpu、图像处理器gpu、数字信号处理器dsp、微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器103可用于存储应用软件的软件程序以及模块,如本发明实施方式中的过载保护方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的过载保护方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置104用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端100的通信供应商提供的互联网。

在在上述运行环境下,本发明提供了如图2所示的过载保护方法。该方法可以应用于服务器中,由服务器中的处理器执行。服务器中安装有至少一个应用程序,本发明实施方式并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。

第一实施例

图2示出了根据本发明实施例的过载保护方法200的流程图。

如图2所示,该方法具体处理流程如下所述:

s210、获取待处理请求到达服务器的到达时间;

s220、当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;

s230、当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

此后,结束本流程。

根据本发明的一个实施例,服务器可以是物理机和/或运行在物理机上的虚拟机,其中,上述物理机包括但不限于:微型机、小型机、中型机、大型机、巨型机或其他能够部署网站的物理设备。

具体地,服务器中的过载保护装置对每个来自客户端的请求执行过载保护方法,当来自客户端的请求到达服务器时,过载保护装置获取该请求到达服务器的时间,过载保护装置将请求的到达时间与过载保护装置中存储的服务器当前时间相比较,其中作为一个实例,可以设置到达时间和当前时间的单位为秒,并且数值为整数,这样能够降低计算复杂度。

当请求的到达时间与存储的服务器当前时间相等时,对当前时间中接收的待处理请求总数累计加一。之后判断累计的请求数是否超过了触发过载的预定阈值,如果累计的请求数超过了预定阈值,则服务器在当前时间拒绝处理超过阈值后接收的待处理请求。可以理解,预定阈值可以根据服务器的性能进行设置,对于小型服务器的阈值范围可以是50至500个请求,例如,100、250、300或450等,对于中大型服务器的阈值范围可以是500至5000个请求,例如,750、1000、2000、2500、3000、4000或4500等。服务器可以采用柔性处理方式来拒绝处理请求,例如丢弃触发过载的请求,本实施例不对拒绝处理待处理请求的方式进行限定,可以理解,还可以采用其他方式确定是否拒绝处理请求,本实施例对此同样不作限定。如果累计的请求数没有超过了预定阈值,则服务器在当前时间继续处理待处理请求。

由于时间是在不断推进,当待处理请求的到达时间与当前时间之差为一单位时间,例如一秒时,那么对于过载保护装置而言,其存储的服务器当前时间相对于服务器真实时间落后一秒,并且其累计的待处理请求的总数为上一秒的总数,在这种情况下,过载保护装置需要将服务器当前时间更新为请求的到达时间,然后对存储上一秒的待处理请求的总数的相应记录进行同步更新,最后将当前时间的待处理请求的总数更新为一。

当待处理请求的到达时间与当前时间之差大于诸如一秒的单位时间时,过载保护装置需要将服务器当前时间更新为请求的到达时间,然后将上一秒的待处理请求的总数更新为零,将当前时间的待处理请求的总数更新为一。

可选地,本实施例的方法还包括查询服务器在上一秒的压力情况。通过查询过载保护装置中存储的上一秒的待处理请求的总数,可以获得服务器上一秒的待处理请求数,根据该请求数可以监控服务器的过载情况。

综上所述,本实施例提供的方法,通过降低过载判断时的计算复杂度,从而降低cpu的计算资源的消耗,特别是在服务器临界过载状态时,有效减轻服务器压力。

本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(programmablearraylogic,简称“pal”)、随机存取存储器(randomaccessmemory,简称“ram”)、可编程只读存储器(programmablereadonlymemory,简称“prom”)、只读存储器(read-onlymemory,简称“rom”)、电可擦除可编程只读存储器(electricallyerasableprogrammablerom,简称“eeprom”)、磁盘、光盘、数字通用光盘(digitalversatiledisc,简称“dvd”)等等。

第二实施例

图3是根据本发明实施例的过载保护装置300的示意性框图。该装置用于执行上述方法流程,包括:

获取模块310,用于获取待处理请求到达服务器的到达时间;

请求累计模块320,用于当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;

请求处理模块330,用于当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

在一示例中,请求累计模块320还可以用于当到达时间与当前时间之差为一秒时,将第二请求数更新为第一请求数,将当前时间更新为到达时间,并且更新第一请求数为1。

请求累计模块320还可以用于当到达时间与当前时间之差大于一秒时,将第一请求数更新为1,第二请求数更新为0,并且将当前时间更新为到达时间。

作为一可选的实施例,过载保护装置300还可以包括一查询模块,用于查询第二请求数,以获得服务器上一秒的请求数。

需要说明的是,过载保护装置300对应于上述方法中的过载保护装置,其中,获取模块310、请求累计模块320、请求处理模块330和查询模块可以被配置为用于执行方法200中相应的操作、动作以及过程,此处省略对这些操作、动作以及过程的描述。

综上所述,本发明的过载保护装置通过降低过载判断时的计算复杂度,从而降低cpu的计算资源的消耗,特别是在服务器临界过载状态时,有效减轻服务器压力。

进一步的,根据本发明的另一实施例,还提供一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当该指令被执行时,使得处理器执行过载保护方法,该指令包括:获取待处理请求到达服务器的到达时间;当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

进一步地,该指令还包括,当到达时间与当前时间之差为一秒时,将第二请求数更新为第一请求数,将当前时间更新为到达时间,并且更新第一请求数为1。

进一步地,该指令还包括,当到达时间与当前时间之差大于一秒时,将第一请求数更新为1,第二请求数更新为0,并且将当前时间更新为到达时间。

进一步的,根据本发明的另一实施例,还提供一种设备,包括存储器,存储有计算机可执行指令,处理器,处理器被配置为执行指令以实施过载保护的过程,该过程包括:获取待处理请求到达服务器的到达时间;当到达时间与服务器的当前时间之差相等时,累计当前时间的待处理请求的第一请求数;当累计的第一请求数超过预定阈值时,拒绝处理待处理请求。

进一步地,该过程还包括,当到达时间与当前时间之差为一秒时,将第二请求数更新为第一请求数,将当前时间更新为到达时间,并且更新第一请求数为1。

进一步地,该过程还包括,当到达时间与当前时间之差大于一秒时,将第一请求数更新为1,第二请求数更新为0,并且将当前时间更新为到达时间。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的第一终端设备来实现。在列举了若干终端设备的单元权利要求中,这些终端设备中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

尽管本文已公开了各种方面和实施例,但其它方面和实施例对于本领域技术人员而言将是明显的。本文公开的各种方面和实施例是为了说明的目的,而不意在进行限制,真实的范围应当由所附权利要求以及这样的权利要求所被授权的等效物的全部范围指示。还要理解,本文中使用的术语仅是为了描述特定实施例的目的,而不意在进行限制。

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