一种数据流的分流方法及装置与流程

文档序号:11436906阅读:173来源:国知局
一种数据流的分流方法及装置与流程

本发明涉及服务器限流技术领域,特别是涉及一种数据流的分流方法及装置。



背景技术:

任务处理系统可以包括前端处理系统和后端处理系统,前端处理系统可以为代理服务器,用于接收用户的请求并将请求分发给后端处理系统。代理服务器会接收到大量的用户请求,该大量的用户请求组成的数据流经代理服务器发送给后端处理系统进行处理。

现有技术中,所有发送给代理服务器的数据流,会及时转发给后端处理系统,在某一时刻,可能会产生用户的请求暴增,对后端处理系统而言处理能力是有限的,数据流中大量的请求无法得到及时处理造成请求堆积;同时接收并处理这些数据流可能会超出后端处理系统的承受能力,造成处理系统过载,严重的会造成处理系统崩溃,因此,现有技术无法保证处理系统的稳定性。



技术实现要素:

本发明实施例的目的在于提供一种数据流的分流方法及装置,以防止流量过大引起处理系统过载,保证后端处理系统稳定性。具体技术方案如下:

一种数据流的分流方法,应用于服务器,所述方法包括步骤:

获得后端处理系统的压力参数的当前值,其中,所述压力参数为反应所述后端处理系统处理任务能力的参数;

判断所述压力参数中是否存在目标压力参数,其中,所述目标压力参数为:当前值不小于预设阈值的压力参数;

如果是,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述将需要发送至所述后端处理系统的数据流进行分流处理,包括:

根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,将需要发送至所述后端处理系统的数据流进行分流处理,包括:

根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例;

根据所述分流比例,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例,包括:

计算每一目标压力参数的预设阈值与该目标压力参数的当前值的比值;

获取所述比值中的最小值,并将任一个不小于所述最小值的值确定为分流比例。

可选的,所述方法还包括:

将需要发送至所述后端处理系统的数据流中目标占比的数据流发送至预设应答机进行处理,其中,所述目标占比为:1-所述分流比例。

可选的,所述压力参数包括:所述后端处理系统的响应时间、所述后端处理系统的请求瞬时并发数、所述后端处理系统的内存占用率、所述后端处理系统的cpu负载值中的至少一种。

一种数据流的分流装置,应用于服务器,所述装置包括:

获得模块,用于获得后端处理系统的压力参数的当前值,其中,所述压力参数为反应所述后端处理系统处理任务能力的参数;

判断模块,用于判断所述压力参数中是否存在目标压力参数,其中,所述目标压力参数为:当前值不小于预设阈值的压力参数;

分流模块,用于在所述判断模块的判断结果为是的情况下,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述分流模块,具体用于:

根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述分流模块,包括:

确定子模块,用于根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例;

分流子模块,用于根据所述分流比例,将需要发送至所述后端处理系统的数据流进行分流处理。

可选的,所述确定子模块,包括:

计算单元,用于计算每一目标压力参数的预设阈值与该目标压力参数的当前值的比值;

确定单元,用于获取所述比值中的最小值,并将任一个不小于所述最小值的值确定为分流比例。

可选的,所述装置还包括:

发送子模块,用于将需要发送至所述后端处理系统的数据流中目标占比的数据流发送至预设应答机进行处理,其中,所述目标占比为:1-所述分流比例。

可选的,所述压力参数包括:所述后端处理系统的响应时间、所述后端处理系统的请求瞬时并发数、所述后端处理系统的内存占用率、所述后端处理系统的cpu负载值中的至少一种。

本发明实施例提供的数据流的分流方法及装置,服务器通过判断获得的后端处理系统的压力参数在存在目标压力参数时,对需要发送给后端处理系统的数据流进行分流处理,避免了现有技术中服务器直接将数据流发送给后端处理系统,可能会造成超出后端处理系统的承受能力而产生过载的问题。因此,防止流量过大引起处理系统过载,能够保证后端处理系统稳定性。

附图说明

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

图1为本发明实施例提供的一种数据流的分流方法的流程示意图;

图2为本发明实施例提供的一种数据流的分流装置的结构示意图。

具体实施方式

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

为解决现有技术问题,本发明实施例提供了一种数据流的分流方法及装置,以下分别进行详细说明。

需要说明的是,本发明实施例提供的一种数据流的分流方法的执行主体可以为服务器,具体的,还可以为代理服务器。

图1为本发明实施例提供的一种数据流的分流方法的流程示意图,应用于服务器,所述方法包括步骤:

s101,获得后端处理系统的压力参数的当前值,其中,所述压力参数为反应所述后端处理系统处理任务能力的参数。

可以理解的是,服务器可以获得后端处理系统的压力参数的当前值,具体的,可以是后端处理系统直接发送给服务器;也可以是服务器主动从后端处理系统存储压力参数的当前值的位置直接进行获取;还可以在后端处理系统和服务器之间设置另一设备,该设备用以从后端处理系统中获取压力参数当前值后,转发给服务器,以上获得后端处理系统的压力参数当前值的方式仅仅是示例性的,不构成对本发明实施例的具体限定。

需要说明的是,压力参数是用来反应后端处理系统处理任务能力的参数,服务器获得压力参数的当前值,即可知道后端处理系统目前处理任务的情况。具体的,压力参数可以为所述后端处理系统的响应时间、所述后端处理系统的请求瞬时并发数、所述后端处理系统的内存占用率、所述后端处理系统的cpu负载值中的至少一种。

可以理解的是,后端处理系统的cpu负载值和后端处理系统的内存占用率,是反应后端处理系统自身的运行状态,当后端处理系统过载的情况下,cpu负载值和内存占用率会很大,示例性的,cpu负载值可以用百分比表示,在某一时刻,后端处理系统的cpu负载值的当前值为75%、后端处理系统的内存占用率的当前值为60%。后端处理系统的响应时间能够反应后端处理系统的从接收请求到对请求做出处理的时间,后端处理系统的请求瞬时并发数表示在某一时刻所有请求的数量;示例性的,某一时刻后端处理系统的响应时间的当前值为8ms,后端处理系统的请求瞬时并发数的当前值为1210。具体的,后端处理系统还可以包含别的压力参数,只要能够反应后端系统处理任务的能力即可,本发明实施例在此不对其进行具体限定。

本发明实施例中,将后端能处理系统的响应时间、请求瞬时并发数、内存占用率、cpu负载值中的至少一种作为后端处理系统的压力参数,能够从后端处理系统的自身运行状态或对任务的响应能力,准确的反应出后端系统当前处理任务的能力。

s102,判断所述压力参数中是否存在目标压力参数,其中,所述目标压力参数为:当前值不小于预设阈值的压力参数;如果是,执行s103。

可以理解的是,根据后端处理系统的压力参数的当前值,判断压力参数中是否存在目标压力参数。具体的,可以预先给每一类压力参数设置一个预设阈值,如,后端处理系统的响应时间的预设阈值为11ms、后端处理系统的请求瞬时并发数的预设阈值为1200、后端处理系统的内存占用率的预设阈值为70%、后端处理系统的cpu负载值的预设阈值为60%。示例性的,后端处理系统的响应时间的当前值为8ms、后端处理系统的请求瞬时并发数的当前值为1210、后端处理系统的内存占用率的当前值为60%、后端处理系统的cpu负载值的当前值为75%;因为响应时间的预设阈值11ms大于当前值8ms,内存占用率的预设阈值70%大于当前值60%,所以后端处理系统的响应时间和内存占用率不是目标压力参数;由于,请求瞬时并发数的当前值1210大于预设阈值1200,以及cpu负载值的当前值75%大于预设阈值60%,所以在压力参数中存在目标压力参数,即,后端处理系统的请求瞬时并发数和cpu负载值为目标压力参数。当前值和预设值仅仅是示例性的,不构成对本发明实施例的限定。

在另一种实现方式中,可以统一设置一个预设阈值。示例性的,设置该预设阈值为800,后端处理系统的响应时间的预设阈值为800μs、后端处理系统的请求瞬时并发数的预设阈值为800、后端处理系统的内存占用率的预设阈值为800‰、后端处理系统的cpu负载值的预设阈值为800‰。示例性的,后端处理系统的响应时间的当前值为900μs、后端处理系统的请求瞬时并发数的当前值为600、后端处理系统的内存占用率的当前值为650‰、后端处理系统的cpu负载值的当前值为750‰;因为,后端处理系统的请求瞬时并发数、后端处理系统的内存占用率和后端处理系统的cpu负载值的预设阈值均大于当前值,所以均不为目标压力参数;后端处理系统的响应时间的当前值为900μs大于预设阈值的800μs,所以后端处理系统的响应时间为目标压力参数。

s103,将需要发送至所述后端处理系统的数据流进行分流处理。

需要说明的是,当存在目标压力参数时,能够表明服务器的处理任务的能力下降或者服务器处理任务过多,所以将原来需要发送至后端处理系统的数据流进行分流处理。如,可以将一部分数据流发送至后端处理系统,另一部分数据流发送至其他的任务处理系统。

应用本发明图1所述的实施例,服务器通过判断获得的后端处理系统的压力参数在存在目标压力参数时,对需要发送给后端处理系统的数据流进行分流处理,避免了现有技术中服务器直接将数据流发送给后端处理系统,可能会造成超出后端处理系统的承受能力而产生过载的问题。因此,防止流量过大引起处理系统过载,能够保证后端处理系统稳定性。

在本发明图1所示的实施例中,s103中直接对需要发送至后端处理系统的数据流进行分流处理,并未给出一个准确的分流方案,很有可能分流以后发送给后端处理系统的数据流仍然超过后端处理系统的处理能力;如果分配的过少给后端处理系统,又会造成后端处理系统的资源利用率较低。为解决上述技术问题,本发明实施例提供了如下的技术方案。

本发明实施例中,将需要发送至后端处理系统的数据流进行分流处理,可以采用的实现方式为:根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,将需要发送至所述后端处理系统的数据流进行分流处理。

在一种实现方式中,可以根据目标压力参数的当前值和预设阈值之差划定发送至后端处理系统的数据流的值,除了发送至后端处理系统的数据流,其他部分的数据流可以发送至预设的处理系统。示例性的,如表1所示,差值1至差值4分别表示对应的压力参数的当前与预设值之差,发送至后端处理系统的数据流的值表示在对应的差值的情况下发送至后端处理系统的数据流的大小。具体的,发送至后端处理系统的数据流的值可以根据实验或者经验确定,本发明实施例的数值仅仅是示例性的,不构成对本发明实施例的具体限定。

需要说明的是,在目标参数为一个压力参数时,根据目标压力参数的当前值和预设阈值的差值,直接从表1中选择对应的数据流的值发送至后端处理系统即可。示例性的,当目标压力参数为响应时间时,在响应时间的当前值和预设阈值之差为150μs时,发送给后端处理系统的数据流大小为10m。当目标压力参数为不止一个压力参数时,可以根据压力参数的当前值和预设阈值之差分别选择需要发送至后端处理系统的数据流的值,然后从选择的数据流的值中确定最小的值,将其作为发送至后端处理系统的数据流的值。示例性的,当目标压力参数为请求瞬时并发数和cpu负载值时,请求瞬时并发数的当前值和预设阈值之差为120,对应的发送至后端处理系统的数据流的值5m;cpu负载值的当前值和预设阈值之差为12%,发送至后端处理系统的数据流的值7m,因为7m大于5m,所以将5m的数据流发送至后端处理系统。本发明实施例提供的发送至后端处理系统的数据流的大小仅仅是示例性的,不构成对本发明实施例的限定。

表1

在另一种实现方式中,可以根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例;根据所述分流比例,将需要发送至所述后端处理系统的数据流进行分流处理。

具体的,根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例的实现方式可以为:计算每一目标压力参数的预设阈值与该目标压力参数的当前值的比值;获取所述比值中的最小值,并将任一个不小于所述最小值的值确定为分流比例。示例性的,当目标压力参数为请求瞬时并发数和cpu负载值,且请求瞬时并发数的当前值为1200及预设阈值为900、cpu负载值的当前值为75%及预设阈值60%。由于900/1200=0.75、60%/75%=0.8,比值中的最小值为0.75,在0-0.75之间的任意一个值都可以设置为分流比例,示例性的,设置的分流比例为0.7。

应用本发明实施例提供的技术方案,能够根据后端系统的目标压力参数的当前值,获得准确的发送至后端处理系统的分流比例或者发送后端处理系统的数据流的值,从而能够进一步保证后端处理系统的稳定性。

在另一种实现方式中,可以根据目标压力参数的当前值和对应的预设阈值的比值,将需要发送至后端处理系统的数据流进行分流处理。示例性的,在比值大于1.5时,将二分之一的数据流发送至后端处理系统,另外二分之一的数据流发送给其他的处理系统。此外,还可以设置不同阶段的比值,如设置目标压力参数的当前值和对应的预设阈值的比值在1-1.4(不包含1,包含1.4)之间时,将三分之二的数据流发送至后端处理系统,另外三分之一的数据流发送给其他的处理系统;在目标压力参数的当前值和对应的预设阈值的比值在1.4-1.6(不包含1.4,包含1.6)之间时,将二分之一的数据流发送至后端处理系统,另外二分之一的数据流发送给其他的处理系统;在目标压力参数的当前值和对应的预设阈值的比值在1.6-2.0(不包含1.6,包含2.0)之间时,将三分之一的数据流发送至后端处理系统,另外三分之二的数据流发送给其他的处理系统,等等。

可以理解的是,为了能够保证对后端处理系统的分流处理,起到最大化的减轻后端任务处理系统任务处理量的目的,当目标压力参数为不止一个压力参数时,可以选取目标压力参数的当前值和对应的预设阈值的比值中最大值对应的分流方式进行分流。示例性的,在目标压力参数为响应时间和cpu负载值时,当响应时间的当前值与预设阈值的比值为1.2,cpu负载值的当前值和预设阈值的比值为1.8时,选取目标压力参数cpu负载值的当前值和预设阈值的比值1.8,其对应的比值范围为1.6-2.0之间,所以将三分之一的数据流发送至后端处理系统,另外三分之二的数据流发送给其他的处理系统。本发明实施例中发送至后端处理系统的数据流的值仅仅是示例性的。

在本发明实施例中,还可以采用:将需要发送至所述后端处理系统的数据流中目标占比的数据流发送至预设应答机进行处理,其中,所述目标占比为:1-所述分流比例。具体的,预设应答机可以为广告空白机。例如,可以用于在用户观看视频时,播放过程中的会自动发送插播广告的请求。当大量的插播广告请求发送至服务器,在超出服务器处理范围时,直接将占比为(1-分流比例)部分的数据流发送至广告空白机,由广告空白机直接作出广告的应答。示例性的,在分流比例为1/3时,那么目标占比为(1-1/3)=2/3,所以将占比为2/3的数据流发送至广告空白机,实现自动应答。这部分请求能够快速获得广告结果,客户端能够持续进行播放。

因此,能够避免在超出后端处理系统的处理范围时,其他尚未及时处理的请求依然在排队等候后端处理系统的处理,对用户端来说会造成视频观看不流畅的体验。因此,应用本发明实施例,能够保证后端处理系统的稳定性的同时,还能够保证用户端观看视频的流畅。

图2为本发明实施例提供的一种数据流的分流装置的结构示意图,应用于服务器,所述装置包括:获得模块201、判断模块202、分流模块203;其中,

获得模块201,用于获得后端处理系统的压力参数的当前值,其中,所述压力参数为反应所述后端处理系统处理任务能力的参数;

判断模块202,用于判断所述压力参数中是否存在目标压力参数,其中,所述目标压力参数为:当前值不小于预设阈值的压力参数;

分流模块203,用于在所述判断模块的判断结果为是的情况下,将需要发送至所述后端处理系统的数据流进行分流处理。

具体的,所述分流模块203,可以用于:

根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,将需要发送至所述后端处理系统的数据流进行分流处理。

具体的,所述分流模块203,可以包括:确定子模块和分流子模块;其中,

确定子模块,用于根据每一目标压力参数的当前值和每一目标压力参数对应的预设阈值,确定需要发送至所述后端处理系统的数据流的分流比例;

分流子模块,用于根据所述分流比例,将需要发送至所述后端处理系统的数据流进行分流处理。

具体的,所述确定子模块,可以包括:计算单元和确定单元;其中,

计算单元,用于计算每一目标压力参数的预设阈值与该目标压力参数的当前值的比值;

确定单元,用于获取所述比值中的最小值,并将任一个不小于所述最小值的值确定为分流比例。

具体的,所述装置还可以包括:

发送子模块,用于将需要发送至所述后端处理系统的数据流中目标占比的数据流发送至预设应答机进行处理,其中,所述目标占比为:1-所述分流比例。

具体的,所述压力参数包括:所述后端处理系统的响应时间、所述后端处理系统的请求瞬时并发数、所述后端处理系统的内存占用率、所述后端处理系统的cpu负载值中的至少一种。

应用本发明图2所示的实施例,服务器通过判断获得的后端处理系统的压力参数在存在目标压力参数时,对需要发送给后端处理系统的数据流进行分流处理,避免了现有技术中服务器直接将数据流发送给后端处理系统,可能会造成超出后端处理系统的承受能力而产生过载的问题。因此,防止流量过大引起处理系统过载,能够保证后端处理系统稳定性。

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

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

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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