一种分布式在线流处理服务系统的制作方法

文档序号:12492553阅读:161来源:国知局

本发明属于计算机数据处理领域,尤其涉及一种分布式在线流处理服务的系统。



背景技术:

现在,计算机在各个领域都得到了深入应用,各行各业都使用计算机来存储和处理各种数据。根据数据在线处理的特点分为实时处理和流式处理,其中,实时处理对数据处理的时间有严格的要求,需要在极短的时间内完成处理,其处理的数据量通常较小,与实时处理相对应,为流处理,其特点是对处理时间没有严格的要求,其处理的数据量通常非常大,但数据的处理需要相应的处理时间,因此,当接收的数据流速率比处理的数据流速率高时,则会出现,待处理的数据越积越多,会引起数据阻塞。特别是随着互联网的飞速发展,基于网络的音视频传输流量也越来越大,网络音、视频流已深入到了人们的日常生活,这对流处理请求服务能够得到及时响应提出了新的要求。一种常用的避免流数据请求被阻塞的做法是提高数据流服务的处理速度,如采用计算性能更好的数据处理单元,因而对硬件的成本要求更高,另一种常用的做法是通过调度的方式将不同的流处理请求分配给多个不同的数据处理单元,以减少流处理请求服务的延迟。因此,如何更加灵活、且不是仅依靠于提升硬件处理能力来改善在线流处理请求服务的效率的调度策略和体系结构是目前普遍关注的研究方向。



技术实现要素:

为了解决现有技术中的上述问题,本发明提出了一种分布式在线流处理服务系统,其用于在线处理数据流。

本发明采用的技术方案如下,包括:

流处理请求接收服务器,其通过网络接收流处理请求方发送的流处理请求;

许可与分发服务器,其对所述接收的流处理请求是否发出许可响应,如果许可,则向请求方发送许可的响应消息,并将所述流处理请求发送给分布式流处理服务器群,如果不允许,则向请求方发送拒绝的响应消息;

分布式流处理服务器群,其接收到所述许可与分发服务器发送的流处理请求,处理数据流,并将处理完成的数据流通过网络发送给所述请求方;

监视服务器,其监视分布式流处理服务器群中的流处理的工作状态;

信息展示服务器,其用于将所述监视服务器获取的信息予以展示;

其中,

所述流处理请求服务器接收到流处理请求时,根据请求的参数确定所述流处理请求的优先级,并将所述流处理器请求及其优先级发送给所述许可与分发服务器;

所述分布式流处理器服务器群至少包括二台独立的流处理服务器,所述分布式流处理器服务器群将每台流处理服务器的处理能力等级定期反馈给所述许可与分发服务器;

所述许可与分发服务器接收到所述流处理请求的优先级,基于所述优先级和所述流处理服务器的处理能力等级将所述流处理请求发送给相应的流处理服务器。

优选的,当所述流处理服务器负荷低于或者等于第一预定值n1时,其处理能力等级上升二级;

当所述流处理服务器负荷大于第一预定值n1时,但小于或者等于第二预定值n2时,其处理能力等级上升一级;

当所述流处理服务器负荷大于第三预定值n3,但小于或者等于第四预定值n4时,其处理能力等级下降一级;

当所述流处理服务器负荷大于第四预定值n4时,其处理能力等级下降二级,

其中,n1<n2<n3<n4,所述处理能力等级的取值范围在0-5之间,如果取值范围超过上限时,则取上限5,如果低于下限时,则取下限0。

优选的,所述流处理服务器负荷P按照如下公式计算:

P=流处理服务器接收的需要处理的数据的输入速度S2/流处理服务器处理数据的速度S1。

优选的,当所述分布式流处理服务器群中存在至少一个重负荷流处理服务器时,所述许可与分发服务器则不再许可新的流处理请求,并通过监视服务器监视分布式流处理服务器群中的每一台流处理服务器,如果存在轻负荷流处理服务器时,则将重负荷流处理服务器处理的数据流通过拆分的方式分发给至少一台轻负荷流处理器服务器;如果不存在轻负荷流处理服务器,所述许可与分发服务器通知所述流处理请求接收服务器停止接收流处理请求,并将所述重负荷流处理服务器处理的数据流通过拆分的方式分发给流处理请求接收服务器,由流处理请求接收服务器执行流处理;其中,流处理服务器的流处理负荷大于第五预定值n5时,则被称为重负荷流处理服务器,流处理负荷小于等于第一预定值n1时,且处理能力等级为处于3至5之间的流处理服务器,则被称为轻负荷流处理服务器;

当监视服务器监视分布式流处理服务器群中的每一台流处理服务器都为轻负荷流处理服务器时,如果所述流处理请求接收服务器处于执行流处理的工作状态时,则通知所述流处理请求接收服务器恢复接收流处理请求,并将其原先承担的流处理任务分发给分布式流处理服务器群中的负荷最轻的流处理服务器。

优选的,所述流处理请求服务器接收到流处理请求时,根据请求的参数确定所述流处理请求的优先级,其中,所述请求的参数包括数据流的类型和长度,确定优先级Sp包括如下步骤:

(1)计算分布式流处理服务器群的处理负荷PT,其中,m为分布式流处理服务器群中流处理服务器的总数,Pi为编号为i的流处理服务器的负荷;根据流处理服务器群的处理负荷PT确定优先级等级基数K:

K=PT+m;其中,m为调整系数;

(2)根据所述类型确定基数A,其中,当为视频数据类型时,A=1,当为音频数据类型时,A=2,其他数据类型,A=3;

(3)可根据所述长度确定调整系数B,其中B=1/L;

则优先级Sp为:

Sp=Round(A×K+B)),其中,Round为按照四舍五入的方式取整的函数。

优选的,所述许可与分发服务器接收到所述流处理请求的优先级,基于优先级与处理能力等级相当的原则,将所述流处理请求发送给相应的流处理服务器,所述相当的原则为从所述优先级与各流处理服务器的流处理能力等级的差值的绝对值中选择值最小的。

优选的,所述n1、n2、n3、n4、n5分别为:0.2、0.5、0.7、1、1.3。

优选的,所述在线数据为下述类型的任一种:视频、音频。

本发明的有益效果至少包括:基于流处理服务器的负荷情况,动态调整流处理服务器的处理能力等级,避免流处理服务器出现数据处理不及时所引起的数据阻塞现象,且极大提高了流处理服务器群的执行效率。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明系统所应用的系统结构图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

参见附图1,其示出了本发明所述的分布式在线流处理服务系统的结构图。其中,流处理请求服务器和流处理服务器群直接连接到互联网,流处理服务器群包含多台流处理服务器,这些服务器既可以设置在一个局域网内,也可以设置在广域网内采用VPN方式实现虚拟局域网,构成分布式架构。

流处理请求服务器、许可与分发服务器、流处理服务器群、信息展示服务器和监视服务器之间通过局域网连接。其中,流处理服务器群包括多台流处理服务器,因而能同时处理多条流处理请求。并且,为了充分利用每台流处理服务器的处理资源,每台流处理服务器通常采用多核处理器以及多进程/线程技术,因此能够承担多个不同的流处理任务,但是,随着所承担的流处理任务越来越多,流处理服务器可用于执行流处理任务的资源也将越来越少,如果流处理服务器承担了过多的流处理任务,导致其处理资源不能够满足流处理任务的需求,那么就会引起待处理的数据积压,出现数据阻塞的情形。本实施例中的流处理请求服务器正是为预防这种情形而独立设置的服务器。流处理请求服务器接收来自互联网上的请求方发送的流处理请求,其接收流处理请求后,根据流处理请求中的需要处理的数据类型和数据长度确定针对该流处理请求的优先级,确定优先级的方法可采取静态设置的方式,例如将符合某中类型和长度设定为对应的优先级,但是,这种方式属于静态设置,虽然较简单,但缺乏灵活性,即使服务器处于较高的负荷下,仍然需要处理高优先级的任务,在实践中,会加重所述服务器的工作压力,甚至使得该服务器出现由于处理资源不足而崩溃等情况。为此,本实施例提出了一个新的技术方案,其采用跟随处理器负载情况,动态设定流处理请求的优先级的方式,具体如下:

首先计算分布式流处理服务器群的处理负荷PT,其中,M为分布式流处理服务器群中流处理服务器的总数,Pi为编号为i的流处理服务器的负荷,且Pi=(流处理服务器接收的需要处理的数据的输入速度S2)/(流处理服务器处理数据的速度S1)。

根据流处理服务器群的处理负荷PT确定优先级等级基数K:

K=PT+m;其中,m为调整参数,用于对K进行个性化设置,可设置为0.

然后根据所述类型确定基数A,其中,当为视频数据类型时,A=1,当为音频数据类型时,A=2,其他数据类型,A=3;

接着可根据所述长度确定调整系数B,其中B=1/L,其中L的单位可根据应用环境所处理的数据流的长度特点设置,在本实施例中,用于对视频数据的编解码处理,可设置单位为吉字节(GB);

则优先级Sp为:

Sp=Round(A×K+B)),其中,Round为按照四舍五入的方式取整的函数。

如下表所示的一个具体实施例,其中第1-2列的数据来自于流处理请求的参数,第5列的调整参数m值用于对流处理服务器群的处理负荷进行误差调整,可设置为0,第3-4、6列为基于上述参数计算得到的中间值,最后1列为计算得到的流处理请求的优先级值。

从上表可以看出,当流处理服务器群的处理负荷发生变化是,对于同一流处理请求,所确定的优先级值却并不相同(其中,数值越小,优先级越高)。可见,接收的流处理请求的优先级是随着流处理服务器群的负荷情况动态设定,一般情况下,流处理服务器群的负荷较低时,所确定流处理请求的优先级较高。

许可与分发服务器接收到由流处理请求服务器发送的流处理请求的优先级后,基于所述优先级与流处理服务器群中每台流处理服务器的流处理能力等级进行流处理请求的分配。所述流处理服务器的流处理能力实质上是指其可被利用的流处理运算能力。本发明给出的具体实施方式中,将等级分为5个等级,其中,0是最低等级,5是最高等级。初始状态时,所有的流处理服务器均设为最高等级5,随着流处理任务的分配,每台流处理服务器的工作负荷会发生变化,从而可利用的流处理能力也随之发生变化。当工作负荷越大,其可被利用的流处理计算能力就越小,从而其对应的流处理能力的等级就越低。

本实施例中,流处理服务器的流处理能力等级的具体设置规则为:

当所述流处理服务器负荷低于或者等于第一预定值n1时,其处理能力等级上升二级,例如,若原等级为3,上升两个等级则为等级5;

当所述流处理服务器负荷大于第一预定值n1时,但小于或者等于第二预定值n2时,其处理能力等级上升一级;

当所述流处理服务器负荷大于第三预定值n3,但小于或者等于第四预定值n4时,其处理能力等级下降一级,例如,原等级为1时,下降一个等级则为0;

当所述流处理服务器负荷大于第四预定值n4时,其处理能力等级下降二级,

其中,n1<n2<n3<n4,所述处理能力等级的取值范围在0-5之间,如果取值范围超过上限时,则取上限5,如果低于下限时,则取下限0。经过测试优选,n1、n2、n3、n4、n5分别为:0.2、0.5、0.7、1、1.3。

许可与分发服务器根据流处理请求的优先级和流处理服务器群中的每台流处理服务器的流处理能力等级进行适配,具体为从所述优先级与各台流处理服务器的流处理能力等级的差值的绝对值中选择值最小的所对应的流处理服务器作为所述流处理请求的执行主体。例如:

在包括5台流处理服务器的流处理服务器群中,许可与分发服务器接收并确定一优先级为2的流处理请求,流处理服务器群中的各个流处理服务器的处理能力等级分别为0,3,4,5,0,则所述流处理请求的优先级与每台流处理服务器处理能力等级的差值绝对值分别为:2,1,2,3,2。可见,处理能力等级为3的流处理服务器与所述流处理请求的优先级的差值绝对值最小,因此,许可与分发服务器将所述流处理请求分发给流处理能力等级为3的流处理服务器。

本实施例改变了优先选择处理能力最富足的处理服务器的传统方式(例如处理能力等级为5的),而是综合考虑流处理请求和流处理服务器的处理能力,选择最适合的流处理服务器(即两者差值的绝对值最小),能有效避免流处理服务器的富余处理能力呈现“小碎片”的情形(即每台流处理服务器都具有富余的处理能力,但都不能够处理一个基本的流处理任务),减少处理能力资源的浪费。通过上述实施例,可以看出,由于本发明采取将流处理请求动态匹配对应的流处理服务器群中的流处理服务器,从而使得流处理服务器群的执行效率得到极大的提高。

此外,本实施例还提出了一种在流处理服务器群处理能力不足的情况下,通过将其他类型的服务器的功能转变为执行流处理的功能,以补充流处理服务器群的整体处理能力。本实施例中,当所述分布式流处理服务器群中存在至少一个重负荷流处理服务器时,所述许可与分发服务器则不再许可新的流处理请求,并通过监视服务器监视分布式流处理服务器群中的每一台流处理服务器,如果存在轻负荷流处理服务器时,则将重负荷流处理服务器处理的数据流通过拆分的方式分发给至少一台轻负荷流处理器服务器;如果不存在轻负荷流处理服务器,所述许可与分发服务器通知所述流处理请求接收服务器停止接收流处理请求,并将所述重负荷流处理服务器处理的数据流通过拆分的方式分发给流处理请求接收服务器,由流处理请求接收服务器执行流处理;其中,流处理服务器的流处理负荷大于第五预定值n5时,则被称为重负荷流处理服务器,流处理负荷小于等于第一预定值n1时,且处理能力等级为处于3至5之间的流处理服务器,则被称为轻负荷流处理服务器;

当监视服务器监视分布式流处理服务器群中的每一台流处理服务器都为轻负荷流处理服务器时,如果所述流处理请求接收服务器处于执行流处理的工作状态时,则通知所述流处理请求接收服务器恢复接收流处理请求,并将其原先承担的流处理任务分发给分布式流处理服务器群中的负荷最轻的流处理服务器。

当流处理服务器群处于重工作负荷状态时,此时若继续接收新的流处理请求,只会进一步加重流处理服务器的工作压力,甚至导致部分流处理服务器崩溃的情况,从而恶化用户使用流处理时的体验。在上述实施例中,采取了不再接收新的流处理请求的手段,以使得流处理服务器群中的流处理服务器能够专注处理已经接收了的流处理任务,此外,在当流处理服务器群处于重度工作负荷的情形下,将不再接收新的流处理请求的流处理请求接收服务器的功能进行转换,将其处理能力转变为执行流处理任务的流式处理能力,以加快对流处理请求的处理速度,使得处于重负荷的流处理服务器群能快速转换到中、低负荷的状态下,改善流处理服务器群整体负荷状况。

本实施例中,监视服务器实时或者定期采集流处理请求服务器和流处理服务器群的工作状态,发送给许可与分发服务器用于工作状态的数据分析,同时也通过信息展示服务器予以显示,便于管理人员操作和维护。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

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