一种流处理请求分配服务器的制作方法

文档序号:14864434发布日期:2018-07-04 10:13阅读:193来源:国知局
一种流处理请求分配服务器的制作方法

本发明属于计算机数据处理领域,尤其涉及一种具有用于分配流处理请求的服务器。



背景技术:

计算机在数据处理中得到了深入应用,根据数据在线处理的特点分为实时处理和流式处理,其中,实时处理对数据处理的时间有严格的要求,需要在极短的时间内完成处理,其处理的数据量通常较小,与实时处理相对应,为流处理,其特点是对处理时间没有严格的要求,其处理的数据量通常非常大,但数据的处理需要相应的处理时间,因此,当接收的数据流速率比处理的数据流速率高时,则会出现,待处理的数据越积越多,会引起数据阻塞。特别是随着互联网的飞速发展,基于网络的音视频传输流量也越来越大,网络音、视频流已深入到了人们的日常生活,例如:音、视频流的编解码服务、格式转化服务等等,这对流处理请求服务能够得到及时响应提出了新的要求。一种常用的避免流数据请求服务被阻塞的做法是提高数据流的处理速度,如采用计算性能更好的数据处理单元,对硬件的成本要求更高,另一种常用的做法是通过调度的方式将不同的数据流请求分配给多个独立的数据处理单元执行,以减少流数据请求服务的延迟,从而提升流处理的执行效率。对于第二种做法,如何合理分配和调度流数据请求是被普遍认为值得关注的技术问题。



技术实现要素:

为了解决现有技术中的上述问题,本发明提出了一种流处理请求分配服务器,其采用多处理器架构,用于在线处理流数据。本发明的技术方案包括:

接口模块,与网络相连接,用于接收来自网络的服务请求;

请求分配装置,与接口连接,将所接收的服务请求分配给执行装置,

执行装置,与请求分配装置连接,接收相应的服务请求并执行相应的网络服务,

输出装置,与执行装置连接,将执行装置的结果输出给接口模块,

所述请求分配装置,其对所述接收的服务请求按照设定的规则决定是否发出许可响应,如果许可,则向请求方发送许可的响应消息,并将所述服务请求发送给执行装置,如果不允许,则向请求方发送拒绝的响应消息,所述设定的规则与执行装置的工作状态和服务请求的相关联。

优选的,所述执行装置包括至少两个处理器,所述工作状态为每个处理器的使用率。

优选的,所述请求分配装置还包括一个数据分析装置,所述数据分析装置记录所述执行装置中的每一个处理器的使用率,流处理执行时间,流处理的数据类型,并将这些数据构成一条记录存储在一数据库中。

优选的,所述数据分析装置根据所述记录的处理器的使用率、所述服务请求所请求数据的数据长度、所述执行装置中各处理器的当前使用率确定新的服务请求的处理指数。

优选的,确定所述处理指数包括如下步骤:

(1)获取所述新服务请求的所请求处理数据的数据长度len;

(2)查询所述数据库是否有负接近所述len的数据长度的记录,如果有,则获取数据库中对应的包括所述执行装置的每个处理器的使用率、流处理的时间和所处理的数据类型的记录信息,并根据所述信息确定所述服务请求的处理指数;如果没有,则查询执行装置中处理器的最小使用率,若所述最小使用率低于一指定的阈值时,则确定所述处理指数为所述最小使用率的处理器的编号,若所述最小使用率均高于所述指定的阈值,则不允许接受所述流处理请求;

(3)若(2)中有确定的处理指数,则将所述服务请求的处理指数提交给请求分配装置;

所述正接近是指所述len与所述数据库中一条记录中的所处理的流数据长度的差值为非负数;

所述负接近是指所述len与所述数据库中一条记录中的所处理的流数据长度的差值为负数;

所述根据所述信息确定所述服务请求的处理指数还包括如下步骤:

(2.1)按照下述计算公式计算所述执行装置中每一个处理器的处理匹配度:

dli=(uri)/(1-uci),其中,dli为编号为i的处理器的处理匹配度,uri为所述编号为i的处理器在所述记录信息中的使用率,uci为所述编号为i的处理器当时的使用率,其中1≤i≤m,m为所述执行装置中处理器的总数,m≥2;

(2.2)如果上述计算的处理匹配度存在不大于1的值,则从上述不大于1的值中选择最大的值所对应的记录确定为处理指数的记录,所述确定的记录中的处理器编号作为所述服务请求的处理指数;否则,则从中选择最小的值所对应的记录确定为处理指数的记录,所述确定的记录中的处理器编号作为所述服务请求的处理指数。

优选的,所述数据分析装置确定所述流处理请求的处理指数后,将所述处理指数提交给所述请求分配装置,所述请求分配装置根据所述处理指数所对应处理器编号将流处理请求发送给处理器。

影响流处理执行效率的因素虽然很多,但本发明以影响流处理执行效率最重要的因素——流数据的长度入手,通过流数据处理的历史数据,从中选择最适合的处理器作为执行单元。本发明的有益效果至少包括:由于所选择的处理器的处理能力与所需要处理的流处理请求所需要的处理器能力接近,因此可以有效利用处理器的处理资源,最大化整体的执行效能。

【附图说明】

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

图1是本发明的一个实施例所应用的系统结构图;

图2是本发明的一个实施例中确定处理指数的流程图。

【具体实施方式】

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

参见附图1示出的一个实施例,展示了所述流处理请求分配服务器的系统结构图。其中,接口模块与网络连接,接收请求方发送的流处理请求,然后将请求转发给与其连接的请求分配装置,请求分配装置中依据设定的规则决定是否许可所接收的流处理请求,例如,可将流处理请求根据所需要的时间复杂度、空间复杂度进行分类,在执行装置中设置多个处理器,与不同分类的流处理请求相对应。

本实施例是应用在音、视频编码转换的一个示例,通过测量执行装置的可用处理能力选择最适配的用于执行音、视频流编码格式转换的处理器单元,使得执行装置的处理器资源应用更加合理。具体为:在请求分配装置中设置一数据分析装置和一数据库模块,数据分析装置记录执行装置中各处理器的使用率,各处理器完成一个流处理请求后,将其所使用的时间、流处理的数据类型和上述处理器的使用率组合成一条记录发送给数据分析装置,数据分析装置将这条记录存放在所述数据库模块中。请求分析装置利用数据库保存这些记录,将这些记录作为分析所分配的处理单元的数据基础,如下表是已经形成的数据库。

数据分析装置查询上述数据库,从流处理请求的参数中提取所要处理的流数据长度,并将所述数据长度的值作为关键词,查找符合要求的记录,以确定所述流处理请求的处理指数,如图2所示,具体步骤如下:

步骤1:获取所述新服务请求的所请求处理数据的数据长度;

步骤2:查询所述数据库是否有负接近所述len的数据长度的记录,如果有,则获取数据库中对应的包括所述执行装置的每个处理器的使用率、流处理的时间和所处理的数据类型的记录信息,并根据所述信息确定所述服务请求的处理指数;如果没有,则查询执行装置中处理器的最小使用率,若所述最小使用率低于一指定的阈值时,则确定所述处理指数为所述最小使用率的处理器的编号,若所述最小使用率均高于所述指定的阈值,则不允许接受所述流处理请求;

步骤3:将所述服务请求的处理指数提交给请求分配装置;

所述负接近是指流处理请求的所述数据长度与所述数据库中每条记录中的数据长度的差值为负数;

所述计算处理指数按照如下步骤计算:

步骤2.1:按照下述计算公式计算所述执行装置中每一个处理器的处理匹配度:

dli=(uri)/(1-uci),其中,dli为编号为i的处理器的处理指数,uri为所述编号为i的处理器在所述记录信息中的使用率,uci为所述编号为i的处理器当时的使用率的值,其中1≤i≤m,m为所述执行装置中处理器的总数;

步骤2.2:如果上述计算的处理匹配度存在不大于1的值,则从上述不大于1的值中选择最大的值所对应的处理器编号值作为所述服务请求的处理指数;否则,则从中选择最小的值所对应的处理器编号值作为所述服务请求的处理指数。

为了方便理解,以上述表格形成的数据库为例,当请求分配装置接收到一个新的流处理请求,其所请求处理的数据流长度是9000kb,当前的执行装置包含两个处理器,编号为1和2,当前使用率分别为30%和40%,计算过程结果如下表所示:

由上表,第4条记录中的处理器编号被选为所述流处理服务请求的处理指数,即:2。上述实施例是为了方便理解本发明所作出一个简化的示例。此外,在确定流处理请求服务的处理指数时,还存在一些特殊情况:

1)没有负接近的记录:

当数据库中没有负接近的记录是,则表明曾处理的流处理的数据长度均小于本次流处理请求的数据长度,或者本次流处理请求属于首次,对于这两者情况,执行装置的所有处理器都没有相关的处理记录,由于所述流处理请求待处理的数据量超过以往处理的数据量,则可能存在使得执行装置中的处理器的负荷超过其处理能力的风险,严重时会引起处理器的处理能力无法满足输入数据流的数据量,导致数据阻塞的情况。因此,需要谨慎接纳对这类请求,本发明采取了最小风险法的处理方式,即将这类请求分配给执行装置中最空闲的处理器,即使用率最低的处理器。同时为了预防处理器崩溃,还设置一个阈值,只有当使用率低于这个阈值时,才允许将所述请求分配给所述处理器。通常的经验设置方式是将该阈值设为50%以下,该阈值也可通过比较处理器的处理能力与流处理请求对处理能力的平均需求来进一步的细化,以确保所述处理器有相对富余的处理能力去处理所述流处理请求所要求的数据量。

2)出现多个可作为处理指数的候选项:

当通过分析和计算,出现多个可作为确定处理指数的记录时,如果这些记录所包含的处理器编号相同,则处理指数即为所述处理器的编号;如果这些记录所包含的处理器编号不相同,则进一步考察这些记录所包含的数据类型,优先选择与流处理请求服务的数据类型相同的记录,如果存在多项相同的,则从中任选一项;如果与流处理服务的数据类型均不相同,则从这些记录中任意指定一项记录作为处理指数的候选记录。在上示例中,只有第4项属于满足要求的记录,因此第4项所包含的处理器编号“2”是本次流处理请求的处理指数。

最后,在确定了流处理请求的处理指数后,请求分配装置就可根据处理指数所指向的处理器编号,将所述流处理请求发送给编号为所述处理指数的处理器。

本实施例提出的技术方案,通过从保存的历史记录中确定最接近的处理记录,并预先评估处理器当前的处理能力是否能够满足要求,因而能有效地将流处理请求分配给适合的处理器,避免了随机分配容易产生的待处理的流处理请求与处理器处理能力不匹配的情况,另外,对于从未处理过的数据长度,采取谨慎处理的方式,即用处理能力满足条件(使用率低于一指定的阈值)、并且处理余量最充足的处理器去处理。执行装置中的所有处理器在完成一条流处理请求任务后,均将其处理中的基本信息记录在一数据库中,以利于后续接收到新的流处理请求时,作为分析的数据基础。

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

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