一种流量控制方法及系统与流程

文档序号:14684007发布日期:2018-06-12 22:59阅读:120来源:国知局
一种流量控制方法及系统与流程

本申请涉及通信技术领域,尤其涉及一种流量控制方法及系统。



背景技术:

当前,很多系统具有服务器,服务器可以接收很多设备的用户请求,并在处理用户请求后向设备反馈请求结果。由于服务器资源有限,所以若服务器接收的用户请求量超出能够处理的用户请求量,会导致服务器的负载变高、内存不足,从而导致服务器宕机。因此,当前在服务器内设置有用户请求的流量控制方法,以便对用户请求量进行控制。

当前的流量控制方法执行过程为:验证服务器是否正常,在服务器正常的情况下,接收并处理所有用户请求;在服务器异常的情况下,拒绝所有的用户请求,直到服务器恢复正常后,才开始接收所有的用户请求。

申请人在研究过程中发现:在服务器出现异常至服务器宕机之间,服务器还是具有一些处理能力可以处理一些请求的。即,在服务器不宕机的情况下,服务器可以尽其所能对一部分用户提供服务。

但是,现有技术的流量控制方案在服务器异常的情况下,会控制服务器拒绝所有用户请求,导致服务器完全停止服务。因此,现有技术的流量控制方案,在一定程度上会浪费服务器资源。



技术实现要素:

本申请提供了一种流量控制方法和系统,可以在服务器出现异常至服务器宕机之间,对用户请求进行控制,以便用户请求量和服务能力可以达到动态平衡,以便提高服务器资源的利用率。

为了实现上述目的,本申请提供了以下技术手段:

一种流量控制系统,包括:

多个设备,用于向服务器发送用户请求;

流量控制设备,用于计算与流量控制设备关联的服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,在逐步减少服务器的用户请求通过量的过程中,若服务器的健康数据值大于预设健康数据值,则逐步增加服务器的用户请求通过量,在逐步增加服务器的用户请求通过量的过程中,若服务器的健康数据值小于预设健康数据值,则逐步减少服务器的用户请求通过量,重复执行上述过程直到所述服务器满足动态平衡条件;将当前用户请求通过量作为服务器的目标用户请求通过量;

服务器,用于接收所述流量控制设备发送的所述目标用户请求通过量,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,所述动态平衡条件包括:所述服务器的健康数据值在所述预设健康数据值上下振荡,或者,所述用户请求通过量为预设最小值。

一种流量控制系统,包括:

多个设备,用于向服务器发送用户请求;

服务器,用于计算服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,在逐步减少服务器的用户请求通过量的过程中,若服务器的健康数据值大于预设健康数据值,则逐步增加服务器的用户请求通过量,在逐步增加服务器的用户请求通过量的过程中,若服务器的健康数据值小于预设健康数据值,则逐步减少服务器的用户请求通过量,重复执行上述过程直到所述服务器满足动态平衡条件,将当前用户请求通过量作为目标用户请求通过量;还用于接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,所述动态平衡条件包括:所述服务器的健康数据值在所述预设健康数据值上下振荡,或者,所述用户请求通过量为预设最小值。

一种流量控制方法,包括:

计算服务器的健康数据值;

在所述健康数据值小于预设健康数据值的情况下,逐步减少服务器的用户请求通过量,直到服务器满足多个动态平衡条件中的一个动态平衡条件,将当前用户请求通过量确定为目标用户请求通过量;

在所述健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量,直到服务器满足多个动态平衡条件中的一个动态平衡条件,将当前用户请求通过量确定为目标用户请求通过量;

将所述目标用户请求通过量确定为服务器接收用户请求的数量;

其中,所述多个动态平衡条件包括:所述服务器的健康数据值在所述预设健康数据值上下振荡,所述用户请求通过量为预设最小值,和,所述用户请求通过量为预设最大值。

优选的,在逐步减少用户请求通过量之前,还包括:

在下一周期计算服务器的健康数据值;

若该健康数据值仍小于所述预设健康数据值,则进入逐步减少服务器的用户请求通过量的步骤。

优选的,所述逐步减少服务器的用户请求通过量,直到服务器满足多个动态平衡条件中的一个动态平衡条件,包括:

在当前用户请求量的基础上减少用户请求通过量;

在下一周期计算所述服务器的健康数据值;

若该健康数据值小于预设健康数据值,则进入所述在当前用户请求量的基础上减少用户请求通过量的步骤,直到所述服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

优选的,所述在当前用户请求量的基础上减少用户请求通过量,包括:

判断当前用户请求通过量是否为所述预设最小值;

若所述当前用户请求通过量为所述预设最小值,则维持当前用户请求通过量;

若所述当前用户请求通过量非预设最小值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求缩减量,在所述当前用户请求通过量的基础上,减少所述用户请求缩减量。

优选的,在逐步增加用户请求通过量之前,还包括:

试图在当前用户请求通过量增加预设数量的用户请求;

在下一周期计算服务器的健康数据值;

若该健康数据值大于预设健康数据值,则进入增加服务器的用户请求通过量的步骤。

优选的,所述逐步增加用户请求通过量,直到服务器满足多个动态平衡条件中的一个动态平衡条件,包括:

在当前用户请求量的基础上增加用户请求通过量;

在下一周期计算所述服务器的健康数据值;

若该健康数据值大于预设健康数据值,则进入所述在当前用户请求量的基础上增加用户请求通过量的步骤,直到所述服务器的健康数据值小于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

优选的,所述在当前用户请求量的基础上增加用户请求通过量,包括:

判断当前用户请求通过量是否为所述预设最大值;

若当前用户请求通过量为所述预设最大值,则维持当前用户请求通过量;

若当前用户请求通过量非所述预设最大值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求增加量,在当前用户请求通过量的基础上,增加所述用户请求增加量。

优选的,在将当前用户请求通过量,确定为服务器接收用户请求的数量之后,还包括:

控制服务器接收并处理所述目标用户请求通过量的用户请求;

控制服务器拒绝多余的用户请求。

一种流量控制系统,包括:

多个设备,用于向服务器发送用户请求;

流量控制设备,用于计算与流量控制设备关联的服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,直到所述服务器满足第一平衡条件,将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器;

服务器,用于接收所述流量控制设备发送的所述目标用户请求通过量,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

优选的,所述流量控制设备,还用于在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量,直到满足第二平衡条件,将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器;

其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

一种流量控制系统,包括:

多个设备,用于向服务器发送用户请求;

服务器,用于计算服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,直到所述服务器满足第一平衡条件,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

优选的,所述服务器,还用于在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量,直到满足第二平衡条件,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

一种流量控制方法,包括:

计算服务器的健康数据值;

在服务器的健康数据值小于预设健康数据值的情况下,逐步减少服务器的用户请求通过量直到所述服务器满足第一平衡条件,将当前用户请求通过量确定为目标用户请求通过量;

将所述目标用户请求通过量确定为服务器接收用户请求的数量;

其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

优选的,所述逐步减少服务器的用户请求通过量直到所述服务器满足第一平衡条件,包括:

在当前用户请求量的基础上减少用户请求通过量;

在下一周期计算所述服务器的健康数据值;

若该健康数据值小于预设健康数据值,则进入所述在当前用户请求量的基础上减少用户请求通过量的步骤,直到所述服务器满足第一平衡条件。

优选的,所述在当前用户请求量的基础上减少用户请求通过量,包括:

判断当前用户请求通过量是否为预设最小值;

若所述当前用户请求通过量为所述预设最小值,则维持当前用户请求通过量;

若所述当前用户请求通过量非预设最小值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求缩减量,在所述当前用户请求通过量的基础上,减少所述用户请求缩减量。

优选的,还包括:

在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量直到满足第二平衡条件,将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器;

其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

优选的,所述逐步增加服务器的用户请求通过量直到满足第二平衡条件,包括:

在当前用户请求量的基础上增加用户请求通过量;

在下一周期计算所述服务器的健康数据值;

若该健康数据值大于预设健康数据值,则进入所述在当前用户请求量的基础上增加用户请求通过量的步骤,直到满足第二平衡条件。

优选的,所述在当前用户请求量的基础上增加用户请求通过量,包括:

判断当前用户请求通过量是否为预设最大值;

若当前用户请求通过量为所述预设最大值,则维持当前用户请求通过量;

若当前用户请求通过量非所述预设最大值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求增加量,在当前用户请求通过量的基础上,增加所述用户请求增加量。

一种流量控制方法,包括:

通过更改用户请求通过量来控制服务器达到平衡条件;

将当前用户请求通过量,确定为目标用户请求通过量;

接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求。

通过以上技术手段,可以实现以下有益效果:

本申请提供的流量控制方案中,在发现系统负载过高之后是并不是如现有技术一样简单粗暴的一刀切(即拒绝所有的用户请求,或者恢复所有的用户请求),而是采取逐步减少用户请求并缓慢恢复用户请求的方案。这样,可以在系统负载过高时,控制系统负载和服务能力达到动态平衡,从而可以尽可能的提高服务器的利用率。

附图说明

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

图1为本申请实施例提供的一种流量控制系统的结构示意图;

图2为本申请实施例提供的一种流量控制方法的流程图;

图3为本申请实施例提供的一种流量控制方法的中各个阶段的示意图;

图4为本申请实施例又提供的一种流量控制系统的结构示意图;

图5为本申请实施例提供的又一种流量控制方法的流程图;

图6为本申请实施例提供的又一种流量控制方法的流程图;

图7为本申请实施例提供的又一种流量控制方法的流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,本申请提供了一种流量控制系统,包括:多个设备100,服务器200,与多个设备和服务器200相连的流量控制设备300。为了便于描述,图示中采用设备1、设备2……设备N表示多个设备,其中N为非零自然数。

其中,多个设备100,用于向服务器200发送用户请求。

流量控制设备300,用于计算与流量控制设备300关联的服务器200的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,在逐步减少服务器的用户请求通过量的过程中,若服务器的健康数据值大于预设健康数据值,则逐步增加服务器的用户请求通过量,在逐步增加服务器的用户请求通过量的过程中,若服务器的健康数据值小于预设健康数据值,则逐步减少服务器的用户请求通过量,重复执行上述过程直到所述服务器满足动态平衡条件;将当前用户请求通过量作为服务器的目标用户请求通过量。

如图2所示,下面详细介绍流量控制设备300的执行过程:

步骤S101:计算服务器的健康数据值。

流量控制设备会周期性的计算服务器的健康数据值,周期的长短可以根据具体情况而定,在此不做限定。健康数据值的具体计算过程已经是业内成熟技术,在此不再赘述。

步骤S102:判断健康数据值是否小于预设健康数据值。若是,则进入步骤S103,若否,表示服务器正常,维持当前的用户请求通过量。

健康数据值用于表示服务器在运行过程中的资源使用情况,若服务器在处理用户请求的过程中,内存和CPU资源等资源处于剩余可用状态,则健康数据值越高。若服务器在处理用户请求的过程中,内存和CPU等资源处于紧张不可用状态,则健康数据值越低。

预设健康数据值为预先设定的界限值,如服务器当前的健康数据值小于预设健康数据值,则表示服务器的负载过高,内存和CPU资源不够用,即服务器不正常,开始执行流量控制过程。

如服务器当前的健康数据值大于预设健康数据值,则表示服务器的负载正常,内存和CPU资源可用,即服务器正常。即表示服务器处于正常(normal)阶段。

步骤S103:监控下一次的健康数据值,若健康数据值仍小于预设健康数据值,则进入步骤S104。若健康数据值大于预设健康数据值,则表示服务器正常,维持当前用户请求通过量。

在第一次监控到服务器200出现异常的情况下,进入警戒(alert)阶段。在警戒阶段下,监控服务器在下一周期的健康数据值。由于服务器的资源处于动态调整过程,所以偶然一次检测到服务器处于不正常状态的话,服务器自身便可以调整资源分配不必执行流量控制过程。

若再次监控到服务器处于不正常状态的话,则确定服务器目前处于不正常状态,开始执行流量控制过程。

步骤S104:判断服务器当前用户请求通过量是否为预设最小值,若是,则维持当前的用户请求通过量不变,若否,则进入S105。

当再次监控到服务器异常时,表示服务器可以上的内存和CPU资源均处于紧张不可用状态,为了保护服务器可以减少用户请求通过量。此时控制服务器进入降级(downgrade)阶段,在降级阶段下会减少用户请求通过量。

技术人员可以预先为服务器设置用户请求通过量的预设最大值和预设最小值。在实际使用情况下,预设最小值可以为0,即不允许通过任何用户请求;当然,预设最小值还可以为其它数值,在此不做限定。

由于预设最小值即为用户请求通过量的最小值,无法在减少。因此,在减少用户请求通过量时,可以先判断服务器的当前用户请求通过量是否为预设最小值。若是,则表示当前用户请求通过量已经达到最小通过量,可以维持当前用户请求通过量不变。

步骤S105:减少服务器的用户请求通过量。

若当前用户请求通过量非预设最小值,则可以控制服务器减少用户请求通过量。具体而言,可以基于期望用户请求通过量和当前用户请求通过量确定出用户请求缩减量;控制服务器在当前用户请求通过量的基础上减去用户请求缩减量,得到当前用户请求通过量。控制服务器按当前用户请求通过量来接收并处理用户请求。

其中,用户请求缩减量的计算公式可以为:

用户请求缩减量=(当前用户请求通过量-期望用户请求通过量)2/期望用户请求通过量。期望用户请求通过量为预先设定的一个用户请求通过量的期望值。当然,还可以采用其它公式来计算用户请求增加量,在此不再一一列举。步骤S106:在下一周期计算服务器的健康数据值。

步骤S107:判断健康数据值是否大于预设健康数据值。若否,则进入步骤S105,若是,则进入步骤S108。

在步骤S105中减少用户请求通过量之后,会在下一周期判断服务器是否正常。若服务器不正常(健康数据值不大于预设健康数据值),则说明服务器接收的用户请求依然较多,目前的服务器资源仍然处于紧张不可用状态。因此,可以继续进入步骤S105来继续减少用户请求通过量。

若服务器正常(健康数据值大于预设健康数据值),则说明在减少用户请求通过量之后,服务器已经开始恢复,服务器具有一些空闲资源。在现有计数中,当服务器稍微恢复之后,便开始接收所有的用户请求。这样很有可能会导致服务器马上又进入不正常状态。

步骤S108:在当前用户通过量的基础上,额外增加预设数量的用户请求。

为了保护服务器,避免服务器马上恢复至不正常状态,可以进入尝试升级(tryupgrade)阶段。在尝试升级阶段下会在服务器接收当前用户通过量的用户请求的基础上,再增加预设数量的用户请求。预设数量的用户请求为数量极少的用户请求,例如1-2个用户请求。其目的在于,在略微增加用户请求后,试探服务器是否仍然会保持正常状态。

步骤S109:计算服务器的健康数据值。

步骤S110:判断健康数据值是否大于预设健康数据值。若否,则进入步骤S105,若是,进入步骤S111。

在尝试升级阶段增加预设数量的用户请求后,在下一周期判断服务器是否正常。若健康数据值不大于预设健康数据值,则说明服务器目前无法接收更多的用户请求,继续进入步骤S105,来减少用户请求通过量。

若健康数据值大于预设健康数据值,则说明在增加用户请求之后未引起服务器异常,说明服务器可以增加一些用户请求。

步骤S111:判断当前的用户请求通过量是否为预设最大值,若是,则维持当前的用户请求通过量不变,若否,则进入S112。

在健康数据值大于预设健康数据值,表示服务器可以上的内存和CPU资源均处于可用状态,为了提高服务器资源的利用率,可以增加用户请求通过量,以便服务器可以处理更多的用户请求。即,控制服务器进入升级(upgrade)阶段。

因为技术人员会为服务器设置一个预设最大值用于表示最大用户请求通过量。因此,在增加用户请求通过量之前,可以判断服务器的当前用户请求通过量是否已经为预设最大值,若是,则表示用户请求通过量已经达到较高通过量,可以维持当前用户请求通过量不变。

步骤S112:增加服务器的用户请求通过量,进入步骤S110。

若当前用户请求通过量非预设最大值,则可以增加用户请求通过量。具体而言,基于期望用户请求通过量和当前用户请求通过量确定出用户请求增加量;在当前用户请求通过量的基础上增加用户请求增加量,得到当前用户请求通过量。控制服务器按照当前用户请求通过量接收并处理用户请求。

其中,用户请求增加量的计算公式可以为:

用户请求增加量=(当前用户请求通过量-期望用户请求通过量)2/期望用户请求通过量。期望用户请求通过量为预先设定的一个用户请求通过量的期望值。当然,还可以采用其它公式来计算用户请求增加量,在此不再一一列举。

本申请会重复执行上述步骤S103-步骤S112,直到服务器的健康数据值在所述预设健康数据值上下振荡,或者,所述用户请求通过量为预设最小值,或者,用户请求通过量为预设最大值。此时,可以认为当前用户请求通过量与服务器的服务能力达到动态平衡,此时可以暂时停止流量控制过程。

流量控制设备300可以将动态平衡之后的当前用户请求通过量作为目标用户请求通过量,并将目标用户请求通过量发送至服务器。

服务器200,用于接收所述流量控制设备300发送的所述目标用户请求通过量,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求。

通过上述内容,可以发现本申请具有以下有益效果:

本申请提供的流量控制方案中,在发现系统负载过高之后是并不是如现有技术一样简单粗暴的一刀切(即拒绝所有的用户请求,或者恢复所有的用户请求),而是采取逐步减少用户请求并缓慢恢复用户请求的方案。这样,可以在系统负载过高时,控制系统负载和服务能力达到动态平衡,从而可以尽可能的提高服务器的利用率。

可以理解的是,在服务器200按目标用户请求通过量执行一段时间后,伴随着一些用户请求结束,服务器200会具有一部分剩余资源。因此,可以重复执行图2所示的过程,以便可以更新目标用户请求通过量。

通过图2所示的实施例,可以发现服务器200上可以具有多个阶段:正常(normal)阶段、警戒(alert)阶段、降级(downgrade)状态、尝试升级(tryupgrade)状态、升级(upgrade)状态。

参见图3,为各个阶段之间的转换图,下面对图3所示过程进行说明:

a)服务器会周期性判断自身是否正常,若本周期确定服务器正常的情况下,服务器处于正常(normal)的状态。

b)当第一次发现服务器不正常的时候进入警戒(alert)状态。在警戒状态下,服务器会监控下一周期检测到检测结果。若下一周期检测到服务器正常,则说明服务器正常。

c)若下一周期检测到服务器仍异常,则说明服务器出现异常,系统进入降级(downgrade)状态。在降级状态下服务器开始减少用户请求通过量,即开始限制用户请求通过量。

d)在限制用户请求通过量的下一周期,如果发现服务器正常那么进入尝试升级tryupgrade阶段,尝试增加用户请求通过量。例如,会试图增加1-2个用户请求。然后,在下一周期监控服务器是否正常。若正常,则进入升级upgrade阶段,增加用户请求通过量。若不正常,则说明不允许增加用户请求通过量。

反复执行c)和d)直到系统的用户请求通过量和服务器的处理请求的能力达到动态平衡。

可以理解的是,作为一种设计选择,上述流量控制设备的功能可以集成于服务器中实现。因此,如图4所示,本申请提供了一种流量控制系统,包括:

多个设备100,与所述多个设备100相连的服务器200。为了便于描述,图示中采用设备1、设备2……设备N表示多个设备,其中N为非零自然数。

其中,多个设备100,用于向服务器200发送用户请求。

服务器200,用于计算服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少用户请求通过量,在逐步减少用户请求通过量的过程中,若服务器的健康数据值大于预设健康数据值,则逐步增加用户请求通过量,在逐步增加用户请求通过量的过程中,若服务器的健康数据值小于预设健康数据值,则逐步减少用户请求通过量,重复执行上述过程直到所述服务器满足动态平衡条件,将当前用户请求通过量作为目标用户请求通过量;还用于接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;

其中,所述动态平衡条件包括:所述服务器的健康数据值在所述预设健康数据值上下振荡,或者,所述用户请求通过量为预设最小值。

服务器200的详细执行过程,可以参见图2所示的实施例,在此不再赘述。

参见图1提供的流量控制系统,申请提供的流量控制系统的又一种流量控制方案:

其中,多个设备100,用于向服务器发送用户请求。

流量控制设备300,用于计算与流量控制设备关联的服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,直到所述服务器满足第一平衡条件,将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器。其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。在服务器负载过高时,会逐步减少服务器的用户请求通过量。在减少服务器用户请求通过量的过程中,健康数据值会逐渐增大,直到服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。此时,认为本次流量控制结束。与图2所示的方案而言,简化了流量控制的操作流程。

所述流量控制设备300,还用于在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量,直到满足第二平衡条件,将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器;其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

在服务器负载正常时,会逐步增加服务器的用户请求通过量,在减少服务器用户请求通过量的过程中,健康数据值会逐渐减小,直到健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。此时,认为本次流量控制结束。与图2所示的方案而言,简化了流量控制的操作流程。

健康数据值趋于所述预设健康数据值,即为健康数据值大于预设健康数据值,且,两者的差值绝对值在预设范围内。这表示健康数据值已经临近预设健康数据值,再增加用户请求通过量会使得服务器不正常,因此,此时可以结束流量控制。

参见图5,下面对流量控制设备的执行过程进行详细描述:

步骤S201:计算服务器的健康数据值。

步骤S202:判断健康数据值是小于预设健康数据值。若是,则进入步骤S203,若否则进入步骤S204。

步骤S203:在服务器的健康数据值小于预设健康数据值的情况下,逐步减少服务器的用户请求通过量直到所述服务器满足第一平衡条件,进入步骤S205。

参见图6,本步骤具体而言,可以包括:

步骤S301:在当前用户请求量的基础上减少用户请求通过量。

本步骤具体包括:判断当前用户请求通过量是否为预设最小值;若所述当前用户请求通过量为所述预设最小值,则维持当前用户请求通过量;若所述当前用户请求通过量非预设最小值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求缩减量,在所述当前用户请求通过量的基础上,减少所述用户请求缩减量。

其中,用户请求缩减量的计算公式可以为:

用户请求缩减量=(当前用户请求通过量-期望用户请求通过量)2/期望用户请求通过量。期望用户请求通过量为预先设定的一个用户请求通过量的期望值。当然,还可以采用其它公式来计算用户请求增加量,在此不再一一列举。

步骤S302:在下一周期计算所述服务器的健康数据值。

步骤S303:判断该健康数据值是否大于预设健康数据值,若否,则进入步骤S304;若是,则判定服务器满足第一平衡条件,结束本次流量控制过程。

步骤S304:判断用户请求通过量是否为预设最小值,若是,则判定服务器满足第一平衡条件,结束本次流量控制过程。若否,则进入步骤S301。

即,若在减少通过请求通过量之后,若该健康数据值仍小于预设健康数据值,则进入所述在当前用户请求量的基础上减少用户请求通过量的步骤,直到所述服务器满足第一平衡条件。其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

返回图5,进入步骤S204:在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量直到满足第二平衡条件,进入步骤S205。

参见图7,本步骤具体包括:

步骤S401:在当前用户请求量的基础上增加用户请求通过量;

本步骤具体包括:判断当前用户请求通过量是否为预设最大值,若当前用户请求通过量为所述预设最大值,则维持当前用户请求通过量;若当前用户请求通过量非所述预设最大值,则基于期望用户请求通过量和当前用户请求通过量确定出用户请求增加量,在当前用户请求通过量的基础上,增加所述用户请求增加量。

其中,用户请求增加量的计算公式可以为:

用户请求增加量=(当前用户请求通过量-期望用户请求通过量)2/期望用户请求通过量。期望用户请求通过量为预先设定的一个用户请求通过量的期望值。当然,还可以采用其它公式来计算用户请求增加量,在此不再一一列举。

步骤S402:在下一周期计算所述服务器的健康数据值。

步骤S403:判断该健康数据值与预设健康数据值的差值绝对值是否在预设范围内,若否,则进入步骤S404;若是,则判定服务器满足第二平衡条件,结束本次流量控制过程。

步骤S404:判断用户请求通过量是否为预设最大值,若是,则判定服务器满足第二平衡条件,结束本次流量控制过程。若否,则进入步骤S401。

即,在增加用户请求通过量之后,若该健康数据值大于预设健康数据值,则进入所述在当前用户请求量的基础上增加用户请求通过量的步骤,直到满足第二平衡条件。其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

返回图5,进入步骤S205:将当前用户请求通过量作为目标用户请求通过量并发送至所述服务器。

服务器200,用于接收所述流量控制设备发送的所述目标用户请求通过量,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求。

作为一种设计选择,图5中流量控制设备的执行执行过程可以集成于服务器上。参见图4提供的一种流量控制系统,申请提供的流量控制系统的又一种流量控制方案:

多个设备100,用于向服务器发送用户请求。

服务器200,用于计算服务器的健康数据值,在服务器的健康数据值小于预设健康数据值的情况下逐步减少服务器的用户请求通过量,直到所述服务器满足第一平衡条件,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;其中,所述第一平衡条件包括服务器的健康数据值大于所述预设健康数据值,或者,所述用户请求通过量为预设最小值。

所述服务器200,还用于在服务器的健康数据值大于预设健康数据值的情况下,逐步增加服务器的用户请求通过量,直到满足第二平衡条件,接收并处理所述目标用户请求通过量的用户请求,拒绝多余的用户请求;其中,第二平衡条件包括服务器的健康数据值趋于所述预设健康数据值,或者,所述用户请求通过量为预设最大值。

服务器200的执行过程,可以参见图5所示的流量控制设备的处理过程类似,在此不再赘述。

本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

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

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