发明内容
鉴于上述,本公开提供了一种用于分配流式数据的方法及装置。利用该方法和装置,能够基于各个数据处理资源的特征确定出在下一时间窗口内各个数据处理资源的负载预期量,进而基于负载预期量来确定将当前待分配的流式数据分配到各个数据处理资源的分配概率。
根据本公开的一个方面,提供了一种用于分配流式数据的方法,包括:获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量;针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量;基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定所述各个流式数据处理资源的当前负载预期量;基于所述各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率;以及根据所述第一数据分配概率将所述流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
可选的,在一个示例中,在基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定所述各个流式数据处理资源的当前负载预期量之前,所述方法还可以包括:调整所述各个流式数据处理资源的当前负载预期变化量。其中,所述各个流式数据处理资源的调整后的当前负载预期变化量之和为零,并且当前负载预期变化量被确定为增加的各个流式数据处理资源的调整后的当前负载预期变化量不超过各自调整前的当前负载预期变化量。
可选的,在一个示例中,针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量可以包括:在该流式数据处理资源的当前健康度不低于在前健康度时,将所述当前负载预期变化量设置为正值;或者在该流式数据处理负载的当前健康度低于在前健康度时,将所述当前负载预期变化量设置为负值。
可选的,在一个示例中,所述方法还可以包括:获取各个流式数据处理资源的在前负载预期变化量和在前负载预期变化速率,以及针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载变化量可以包括:针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度、在前健康度所述在前预期变化量以及在前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化速率;以及基于所确定的当前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化量。
可选的,在一个示例中,基于该流式数据处理资源的当前健康度、在前健康度以及在前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化速率可以包括:在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载预期变化量不超过第一阈值时,将所述当前负载预期变化速率设置为大于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载预期变化量超过所述第一阈值时,将所述当前负载预期变化速率设置为小于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值不超过第二阈值时,将所述当前负载预期变化速率的绝对值设置为大于所述在前负载预期变化速率的绝对值;或者在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值超过所述第二阈值时,将所述当前负载预期变化速率的绝对值设置为小于所述在前负载预期变化速率的绝对值。
可选的,在一个示例中,所述方法还可以包括:获取所述流式数据的用户特征数据;基于所述流式数据的用户特征数据,利用流式数据处理资源推荐模型预测所述流式数据针对各个流式数据处理资源的第二数据分配概率;基于所述第一数据分配概率和所述第二数据分配概率,确定第三数据分配概率;以及根据所述第三数据分配概率将所述流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
根据本公开的另一方面,还提供一种用于分配流式数据的装置,包括:处理资源特征获取单元,被配置为获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量;负载预期变化量确定单元,被配置为针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量;负载预期量确定单元,被配置为基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定所述各个流式数据处理资源的当前负载预期量;第一数据分配概率确定单元,被配置为基于所述各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率;以及流式数据分配单元,被配置为根据所述第一数据分配概率将所述流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
可选的,在一个示例中,所述装置还可以包括:负载预期变化量调整单元,被配置为在基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定所述各个流式数据处理资源的当前负载预期量之前,调整所述各个流式数据处理资源的当前负载预期变化量。其中,所述各个流式数据处理资源的调整后的当前负载预期变化量之和为零,并且当前负载预期变化量被确定为增加的各个流式数据处理资源的调整后的当前负载预期变化量不超过各自调整前的当前负载预期变化量。
可选的,在一个示例中,所述负载预期变化量确定单元可以被配置为:在该流式数据处理资源的当前健康度不低于在前健康度时,将所述当前负载预期变化量设置为正值;或者在该流式数据处理负载的当前健康度低于在前健康度时,将所述当前负载预期变化量设置为负值。
可选的,在一个示例中,所述装置还可以包括:负载预期变化数据获取单元,被配置为获取各个流式数据处理资源的在前负载预期变化量和在前负载预期变化速率,以及负载预期变化量确定单元包括:负载预期变化速率确定模块,被配置为针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度、在前健康度、所述在前负载预期变化量以及所述在前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化速率;以及负载预期变化量确定模块,被配置为基于所确定的当前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化量。
可选的,在一个示例中,所述负载变化速率确定模块可以被配置为:在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载预期变化量不超过第一阈值时,将所述当前负载预期变化速率设置为大于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载变化量超过所述第一阈值时,将所述当前负载预期变化速率设置为小于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值不超过第二阈值时,将所述当前负载预期变化速率的绝对值设置为大于所述在前负载预期变化速率的绝对值;或者在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值超过所述第二阈值时,将所述当前负载预期变化速率的绝对值设置为小于所述在前负载预期变化速率的绝对值。
可选的,在一个示例中,所述装置还可以包括:用户特征数据获取单元,被配置为获取所述流式数据的用户特征数据;第二数据分配概率确定单元,被配置为基于所述流式数据的用户特征数据,利用流式数据处理资源推荐模型预测所述流式数据针对各个流式数据处理资源的第二数据分配概率;第三数据分配概率确定单元,被配置为基于所述第一数据分配概率和所述第二数据分配概率,确定第三数据分配概率;以及所述流式数据分配单元被配置为:根据所述第三数据分配概率将所述流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本公开的另一方面,还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本公开的方法和装置,通过基于各个数据处理资源的特征确定出在下一时间窗口内各个数据处理资源的负载预期变化量,进而基于负载预期变化量和成功量来确定在下一时间窗口内各个数据处理资源的负载预期量,然后基于负载预期量来确定将当前待分配的流式数据分配到各个数据处理资源的分配概率,从而能够根据各个数据处理资源的特征来分配流式数据,以使实现各个数据处理资源的负载均衡。
利用本公开的方法和装置,通过调整各个流式数据处理资源的当前负载预期变化量,以使各个流式数据处理资源的调整后的当前负载预期变化量之和为零,并且当前负载预期变化量被确定为增加的各个流式数据处理资源的调整后的当前负载预期变化量不超过各自调整前的当前负载预期变化量,从而使得在下一个时间窗口内的所有流式数据都能被成功分配给相应的流式数据处理资源,并且能够避免各个流式数据处理资源的负载超过处理能力。
利用本公开的方法和装置,通过在该流式数据处理资源的当前健康度不低于在前健康度时,将当前负载预期变化量设置为正值,或者在该流式数据处理负载的当前健康度低于在前健康度时,将当前负载预期变化量设置为负值,能够在流式数据处理资源的健康度变差时,降低该流式数据处理资源的预期负载量,而在流式数据处理资源的健康变变好时,增加该流式数据处理资源的负载预期量,由此能够使该流式数据处理资源的负载动态地调整以实现负载均衡。
利用本公开的方法和装置,通过基于各个流式数据处理资源的在前负载预期变化量和在前负载预期变化速率来确定当前负载预期变化速率,并基于当前负载预期变化速率确当前负载预期变化量,能够根据各个流式数据处理资源的实时状态调整该流式数据处理资源的负载。
利用本公开的方法和装置,通过基于在前健康度、当前健康度、在前负载预期变化量以及在前负载预期变化速率来确定当前负载预期变化速率,能够在健康度未变差或健康度变差时,合理控制负载上升或下降的速度,以实现平滑的负载均衡。
利用本公开的方法和装置,通过基于用户特征数据预测将相应流式数据分配到各个流式数据处理资源的第二数据分配概率,然后基于第二数据分配概率和根据流式数据处理资源的实时状态确定的第一数据分配概率确定第三数据分配概率,进而基于第三数据分配概率来分配流式数据,从而能够结合流式数据处理资源的特征和用户特征来实现负载均衡。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本公开的用于分配流式数据的方法及装置。
图1是负载均衡***的一个示例的结构框图。如图1所示,在负载均衡***100中,包括多个流式数据处理资源140(虽然图1中示出的是4个,但流式数据处理资源的数量可以是任意的)。流式数据处理资源140可以是由一个或多个计算设备组成的数据处理服务器。多个用户可通过用户终端110经由网络120发出数据请求。网络120可以是有线网络或无线网络。各个用户的数据请求所对应的待处理数据可以由负载均衡装置130分配给多个流式数据处理资源140,以使各个流式数据处理资源共同完成针对各个待处理数据的处理任务,以提高对用户的数据请求的响应速度。负载均衡装置140应当使各个流式数据处理资源的负载尽量符合各自的处理能力,以充分利用各个流式数据处理资源的处理能力。
图1仅仅是为了示意性的说明而示出了负载均衡***的一个示例,本公开还可以适用于其它架构的负载均衡***。
图2是本公开适用的数据处理***的一个示例的架构示意图。如图2所示,数据处理***200包括日志采集装置210、特征提取装置220、触发装置230、特征数据库240、负载均衡装置250、和流式数据处理资源260。
日志采集装置210采集***的数据处理日志信息,可以包括各个流式数据处理资源所处理的流式数据、处理结果、是否成功处理、流式数据对应的用户信息、数据处理时间等。特征提取装置220可基于日志采集装置210所采集的日志来提取各个流式数据处理资源260的特征数据以及被处理流式数据所对应的用户特征。特征提取装置220可以采用流计算处理引擎(例如FLink、Spark等)实时对日志进行加工处理,以提取用户特征和流式数据处理资源特征。流式数据处理资源特征可以包括各个流式数据处理资源在某一时刻的健康度、在预定时间窗口的负载量和成功量、成功量占比(成功量占总负载量的比例)等,还可以包括该流式数据处理资源所处理的流式数据的用户特征。流式数据(或流数据)通常是指一组顺序、大量、快速、连续到达的数据序列,通常情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。
特征提取装置220提取的各种特征数据可以存储在特征数据库240中。触发装置230用于触发负载均衡装置250来分配流式数据。触发装置230可以采用定时触发(即每隔预定时间间隔触发一次数据分配)的方式来触发流式数据分配,还可以基于流来触发。此外,触发装置230还可以在产生待分配的流式数据时触发流式数据分配。
负载均衡装置230可以在触发装置230的触发下,基于特征数据库240中的各项特征将流式数据分配给对应的流式数据处理资源260,以由流式数据处理资源260来对流式数据进行处理。在完成流式数据处理之后,所产生的日志被日志采集装置210采集,以生成新的日志数据。
本公开实施例中的流式数据分配方法可以由如图1和图2所示的负载均衡装置执行。
图3是根据本公开的一个实施例的流式数据分配方法的流程图。图4是用于说明本公开的一个实施例的流式数据分配方法中的概念的示意图。
如图3所示,在块302,获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量。当前健康度是指在当前时刻基于当前所提取到的各个流式数据处理资源特征而确定的健康度,当前成功量是指在到当前时刻为止的预定时间窗口(如图4所示的时间窗口N)内各个流式数据处理资源处理成功的流式数据量。在前健康度为在前时刻确定的健康度。
流式数据是基于时间顺序依次到达的数据,每当有流式数据到达时,需要将该待分配的流式数据分配到适当的流式数据处理资源,来进行处理。如图4所示,流式数据N和流式数据N+1依次到达,流式数据N为在前被分配的流式数据,流式数据N+1为当前待分配的流式数据。然而,由于各流式数据处理资源的实际处理能力可能与预期有差别,因而被分配到各个流式数据处理资源的流式数据未必能够全部被处理成功。针对各个流式数据处理资源,在给定时间窗口内处理成功的流式数据总和为该流式数据处理资源在该给定时间窗口内的成功量。
通常情况下,当前时刻可以是当前待分配流式数据(例如图4所示的流式数据N+1)到达负载均衡装置的时刻,或者可以是触发装置触发对当前待分配流式数据的分配操作的时刻。
在获取到当前健康度等特征数据之后,在块304,针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量。当前负载预期变化量是指,当前时刻所确定的在下一时间窗口,某一流式数据处理资源预期能够处理的流式数据总量相对于当前时间窗口处理成功的流式数据总量的变化量。当前负载预期变化量可能被确定为增加或减少,当被确定为增加时,预期相应流式数据资源的当前负载预期量相对于当前成功量有所增加,当被确定为减少时,可预期相应流式数据资源的当前负载预期量相对于当前成功量有所减少。根据各个流式数据处理资源的当前健康度和在前健康度,可以确定下一时间窗口(如图4所示的时间窗口N+1)相对于当前时间窗口(如图4所示,时间窗口N)所能处理的流式数据的变化量。例如,可以根据当前健康度相对于在前健康度的变化趋势来确定当前负载预期变化量。
然后,在块306,基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定各个流式数据处理资源的当前负载预期量。当前负载预期量是指在当前时刻确定预期在下一时间窗口能够处理的流式数据量。可以在当前成功量的基础上加上所确定的当前负载预期变化量,以确定出相应流式数据处理资源在下一时间窗口的负载预期量。
在确定出在块308,基于各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率。在一个示例中,可以基于各个流式数据处理资源的当前负载预期量,确定出在下一时间窗口中分配给各个流式数据处理资源的流式数据的分配比例。由于在下一时间窗口中,除当前待分配的流式数据N+1以外,其它流式数据均已被分配给相应流式数据处理资源,因而该分配比例可以看作是当前待分配的流式数据N+1将被分配给各个流式数据处理资源的第一数据分配概率。
在一个示例中,可以在在基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定各个流式数据处理资源的当前负载预期量之前,调整各个流式数据处理资源的当前负载预期变化量,以使各个流式数据处理资源的调整后的当前负载预期变化量之和为零,并且当前负载预期变化量被确定为增加的各个流式数据处理资源的调整后的当前负载预期变化量不超过各自调整前的当前负载预期变化量。
各个流式数据处理资源的当前负载预期变化量是基于各自的健康度状况确定的,因而各个流式数据处理资源的当前负载预期变化量之间可能不平衡。不平衡的一个示例是,在下一时间窗口的流式数据分配量上升的总合不能覆盖下降的总和,从而会导致有部分流式数据不能被成功分配,因而需要对各个流式数据处理资源的当前负载预期变化量进行调整。作为示例,如果流式数据处理资源的数量为三个,即A、B、C,假设A、B、C的当前负载预期变化量依次为10、20、-22(正值表示增加,负值表示减少),则表明在下一时刻A可以增加的上限为10,B可以增加的上限为20,而C应至少减少22。此时,A、B、C调整后的当前负载预期变化量可以分别为10、12、-22或2、20、-22等组合,只要调整后的负载预期变化量在各自的上述限值以内,并保证在各个流式数据处理资源中负载增加的数量能够覆盖负载减少的数量即可。
在一个示例中,可以对健康度进行排序,并依次将健康度最好的流式数据处理资源的负载预期变化量调整至其能够增加的最大值(即在块306中确定的负载预期变化量)。例如,如果A、B、C的健康度依次为0.9、0.88、0.44。由于A的健康度最好,由于C总共需要减少22,因而可以将A的负载预期变化量调整为10,然后将B的负载预期变化量调整为12。再例如,假设总共有A、B、C、D四个流式数据处理资源,在块306中确定的负载预期变化量依次为10、20、10、-35,且在时间窗口N的健康度依次为0.9、0.88、0.8、0.44,则在为A增加10之后,健康度最好的是B因而可以为B增加20,然后为C增加5。
通过上述调整过程,能够保证待分配的流式数据能够被成功分配,并能充分利用各流式数据处理资源的处理能力。
在确定出第一数据分配概率之后,在块310,根据第一数据分配概率将流式数据分配给各个流式数据处理资源中的对应流式数据处理资源。例如,可以将当前待分配的流式数据分配给第一数据分配概率最高的流式数据处理资源。
由此,如果在一段时间内,某一流式数据处理资源的第一数据分配概率始终最高,则分配给该流式数据处理资源的流式数据会比较多。如果分配给该流式数据处理资源的流式数据量超出了处理能力,则其健康度变差,因而该流式数据处理资源的负载预期量也会相应地降低,进而其第一数据分配概率也会降低,由此能降低分配给该流式数据处理资源的流式数据的量。另一方面,如果在一段时间内,某一流式数据处理资源的第一数据分配概率始终较低,则分配给其的流式数据会减少,进而该流式数据处理资源的健康度会上升,最终引起为其确定的第一数据分配概率上升,从而使得分配给该流式数据处理资源的流式数据量上升。因此,通过该实施例,能够根据各个流式数据处理资源的状态动态地调整流式数据的分配比例,以实现负载均衡。
图5是根据本公开的一个实施例的流式数据分配方法中的负载预期变化量确定过程的一个示例的流程图。
如图5所示,在块502,针对各个流式数据处理资源,比较当前健康度和在前健康度。
如果当前健康度不低于在前健康度,在块504,将当前负载预期变化量确定为正值。如果当前健康度不低于在前健康度,则表明该流式数据处理资源的健康度未变差,进而表明该流式数据处理资源的处理能力不低于实际分配给其的流式数据量。因而可以预期在下一时间窗口,该流式数据处理资源能够处理更多的流式数据,因而可以将当前负载预期变化量确定为正值。
如果当前健康度低于在前健康度,在块506,将当前负载预期变化量确定为负值。如果当前健康度低于在前健康度,则表明在在前时间窗口分配给该流式数据处理资源的流式数据量已超过了其处理能力。因而,可以预期在下一时间窗口,可以预期在下一时间窗口该流式数据处理资源所能处理的流式数据量会降低。因而可以将当前负载预期变化量确定为负值。
图6是根据本公开的一个实施例的流式数据分配方法中的负载预期变化量确定过程的另一示例的流程图。
如图6所示,在块602,获取各个流式数据处理资源的在前负载预期变化量和在前负载预期变化速率。当前负载预期变化速率是指当前时刻确定的负载预期变化量相对于在前时刻所确定的负载预期变化量的增长速率或下降速率。
在获取在前负载预期变化速率之后,在块604,针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度、在前健康度、在前负载预期变化量以及在前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化速率。
然后,在块606,基于所确定的当前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化量。在一个示例中,负载预期变化量可以基于负载预期量占比(即,在给定时间窗口,该流式数据处理资源的负载预期量占所有流式数据处理资源的总负载预期量的比率)的变化量来确定。而负载预期量占比的变化量可以基于调节步长来确定。可以针对每个流式数据处理资源,基于各个流式数据处理资源的历史负载量来确定每个步长对应的基线。例如,对于流式数据处理资源A、B、C,如果在给定时间段内三者的历史负载量为10万、12万、18万。则对于A,其基线可以被确定为β=10/[(10+12+18)*M],M是指最大步长,即最多调节M个步长能够达到该流式数据处理资源的最大流式数据分配比例(即历史流式数据分配比例)。β为每个步长对应的分配比例。例如,如果历史流式数据分配比例为25%,最多调个16个步长可以调节到25%,则β=25%/16。如果当前调节步长为C,则当前负载预期量占比的变化量为C*β。那么,假设在时间窗口N+1的流式数据总量为Q,则当前负载预期变化量为C*β*Q。
图7是根据本公开的一个实施例的流式数据分配方法中的负载预期变化速率确定过程的一个示例的流程图。图8是利用图7所示的方法来确定负载预期变化量确定过程的示例性趋势图。图8中曲线的斜率即负载预期变化速率。
如图7所示,在块702,针对各个流式数据处理资源,比较当前健康度和在前健康度。
如果当前健康度不低于在前健康度,在块704,判断该流式数据处理资源的在前负载预期变化量是否超过第一阈值。
如果在前负载预期变化量超过第一阈值,则在块706,将当前负载预期变化速率设置为小于在前负载预期变化速率。如果在前负载预期变化量超过第一阈值,则表明该流式数据处理资源的负载量增长速度过快,可能已接近其处理能力上限,因而应当降低增长速度。此时,可以降低当前负载预期变化速率。
如果在前负载预期变化速率未超过第一阈值,则在块708,将当前负载预期变化速率设置为大于在前负载预期变化速率。如果当前负载预期变化速率未超过第一阈值,则表明该流式数据处理资源的处理能力远超出实际负载,因而可以提高负载量增加速度。
在基于调节步长来确定负载预期变化量时,可以通过调节步长是否超过第一步长阈值来判断当前负载预期变化量是否超过第一阈值。如图8所示,在I段,第一步长阈值设置为12,在时刻4之前各个时刻确定的调节步长均小于12,因此在时刻1、时刻2、时刻3和时刻4确定的调节步长依次为2、4、8、16,相对于前一时刻的步长增长数依次为1、2、4、8。从图8中可以看出,在I段,从时刻1至时刻4,调节步长的增长速率上升,该阶段为负载预期变化量的快速上升阶段。而时刻4的步长被确定为16,超过了12,因而在时刻5,调节步长被确定18,相对于时刻4仅增长了2,其增长幅度小于时刻4相对于时刻3的增长幅度,相应地,在时刻5当前负载变化量的增长速度下降。在图8中的II段,由于调节步长已超过了第一步长阈值12,因而调节步长的增长速率放缓。
如果当前健康度低于在前健康度,在块710,判断在前负载预期变化量的绝对值是否超过第二阈值。
如果在前负载预期变化量的绝对值超过第二阈值,在块712,将当前负载预期变化速率设置为小于在前负载预期变化速率。在当前健康度低于在前健康度的情况下,如果当前负载预期变化速率的绝对值超过第二阈值,则表明该流式数据处理资源的负载量下降速度过快,可能会造成处理能力浪费,因而需要降低负载量下降速度。
如果在前负载预期变化量的绝对值未超过第二阈值,在块614,将当前负载预期变化速率设置为大于在前负载预期变化速率。在当前健康度低于在前健康度的情况下,如果当前负载预期变化速率的绝对值未超过第二阈值,则表明该流式数据处理资源的负载量下降速度比较慢,可以加快下降速度。
基于调节步长来确定负载预期变化量时,可以通过调节步长的绝对值是否超过第二步长阈值来判断当前负载预期变化量是否超过第二阈值。如图8所示,从时刻13开始,当前健康度低于在前健康度,即该流式数据处理资源的健康度开始变差。因而从时刻13开始调节步长变为负值。在III段,第二步长阈值设置为12,从时刻13至时刻17,调节步长的绝对值未超过12,因而调节步长依次为-2、-4、-8、-16。因此在时刻1、时刻2、时刻3和时刻4确定的调节步长的绝对值相对于前一时刻的调节步长绝对值的增长数依次为1、2、4、8。从图8的III段可以看出,在该阶段调节步长绝对值的增长速率上升。而时刻17确定的调节步长为-16,绝对值超过了12,因而在时刻18,调节步长被确定为-18,绝对值相对于时刻17增长了2,低于时刻17相对于时刻16的增长幅度。图8中III段为调节步长(即负载预期变化量)的快速下降阶段,IV段为调节步长的缓慢下降阶段(对应负载变化量的缓慢下降阶段)。
图9是根据本公开的另一实施例的流式数据分配方法的部分过程的示例图。
如图9所示,在块902中,获取流式数据的用户特征数据。用户特征数据可以包括用户行为数据、与该用户相关的流式数据的历史处理记录等。
在获取到用户特征数据之后,在块904中,基于流式数据的用户特征数据,利用流式数据处理资源推荐模型预测流式数据针对各个流式数据处理资源的第二数据分配概率。在流式数据处理资源推荐模型的训练过程中,可以基于流式数据历史处理记录,对训练样本中的用户特征数据样本进行打标,以标注出各用户特征数据样本所对应的历史流式数据处理资源。即,标注出处理过特定用户特征数据样本所对应的流式数据的流式数据处理资源。然后,可以利用这些标注过的样本来训练模型。第二数据分配概率是基于用户特征预测出的推荐概率,能够反映出不同用户对应的流式数据适合由哪个流式数据处理资源来处理。
在确定出第二数据分配概率之后,在块906中,基于第一数据分配概率和第二数据分配概率,确定第三数据分配概率。在一个示例中,可以利用加权求和的方式确定第三数据分配概率。此时,可以根据业务需求来确定权值。例如,如果希望数据分配更关注用户特征,则可以为第二数据分配概率设置较大的权值,如果希望数据分配更多地关注各流式数据资源的本身特性,则可以为第一数据分配概率设置更大的权值。
然后,在块908中,根据第三数据分配概率将所述流式数据分配给各个流式数据处理资源中的对应流式数据处理资源。例如,可以将当前待分配的流式数据分配给当前确定出的第三数据分配概率最大值所对应的流式数据处理资源。在另一示例中,也可以比较历史各时刻确定的第三数据分配概率,如果在分配历史中,某流式数据处理资源的第三数据分配概率持续最高,则可以将流式数据分配给第三数据分配概率次高的流式数据处理资源。
图10是根据本公开的一个实施例的流式数据分配装置的结构框图。如图10所示,流式数据分配装置1000包括处理资源特征获取单元1010、负载预期变化量确定单元1020、负载预期量确定单元1030、第一数据分配概率确定单元1040和流式数据分配单元1050。
处理资源特征获取单元1010被配置为获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量。负载预期变化量确定单元1020被配置为针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量。
在确定当前负载预期变化量之后,负载预期量确定单元1030基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定各个流式数据处理资源的当前负载预期量。第一数据分配概率确定单元1040被配置为基于各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率。确定出第一数据分配概率之后,流式数据分配单元1050根据第一数据分配概率将流式数据分配给各个流式数据处理资源中的对应流式数据处理资源。
图11是根据本公开的另一实施例的流式数据分配装置的结构框图。图12是根据本公开的一个实施例的流式数据分配装置中的负载预期变化量确定单元的一个示例的结构框图。如图11所示,流式数据分配装置1100包括处理资源特征获取单元1110、负载预期变化数据获取单元1120、负载预期变化量确定单元1130、负载预期量确定单元1140、第一数据分配概率确定单元1150、用户特征数据获取单元1160、第二数据分配概率确定单元1170、第三数据分配概率确定单元1180和流式数据分配单元1190。
处理资源特征获取单元1110被配置为获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量。负载预期变化数据获取单元1120,被配置为获取各个流式数据处理资源的在前负载预期变化量和在前负载变化速率。然后,负载预期变化量确定单元1130基于所获取的当前健康度、在前健康度和在前负载预期变化速率来确定当前负载预期变化量。
如图12所示,在该示例中,负载预期变化量确定单元包括负载预期变化速率确定模块1131和负载预期变化量确定模块1132。负载预期变化速率确定模块1131被配置为针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度、在前健康度、在前负载变化量以及在前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化速率。负载预期变化量确定模块1132被配置为基于所确定的当前负载预期变化速率,确定该流式数据处理资源的当前负载预期变化量。
此外,流式数据分配装置还可以包括负载预期变化量调整单元(图中未示出)。负载预期变化量调整单元被配置为在基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定各个流式数据处理资源的当前负载预期量之前,调整各个流式数据处理资源的当前负载预期变化量。其中,各个流式数据处理资源的调整后的当前负载预期变化量之和为零,并且当前负载预期变化量被确定为增加的各个流式数据处理资源的调整后的当前负载预期变化量不超过各自调整前的当前负载预期变化量。
在一个示例中,负载变化速率确定模块可以被配置为:在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载预期变化量不超过第一阈值时,将所述当前负载预期变化速率设置为大于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度不低于在前健康度且所述在前负载变化量超过所述第一阈值时,将所述当前负载预期变化速率设置为小于所述在前负载预期变化速率;在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值不超过第二阈值时,将所述当前负载预期变化速率的绝对值设置为大于所述在前负载预期变化速率的绝对值;或者在该流式数据处理资源的当前健康度低于在前健康度且所述在前负载预期变化量的绝对值超过所述第二阈值时,将所述当前负载预期变化速率的绝对值设置为小于所述在前负载预期变化速率的绝对值。
在确定出负载预期变化量之后,负载预期量确定单元1140基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定各个流式数据处理资源的当前负载预期量。然后,第一数据分配概率确定单元1140基于各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率。
用户特征数据获取单元1160被配置为获取流式数据的用户特征数据。在获取到用户特征数据之后,第二数据分配概率确定单元1170基于流式数据的用户特征数据,利用流式数据处理资源推荐模型预测流式数据针对各个流式数据处理资源的第二数据分配概率。然后,第三数据分配概率确定单元1180基于第一数据分配概率和第二数据分配概率,确定第三数据分配概率。
确定出第三数据分配概率之后,流式数据分配单元被配置1190根据所述第三数据分配概率将流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
以上参照图1到图12,对根据本公开的用于分配流式数据的方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本公开的装置的实施例。
本公开的用于分配流式数据的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本公开的用于分配流式数据的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,用于分配流式数据的装置例如可以利用计算设备实现。
图13是根据本公开的一个实施例的用于实现流式数据分配方法的计算设备的结构框图。如图13所示,计算设备1300包括处理器1310、存储器1320、内存1330、通信接口1340和内部总线1350,并且处理器1310、存储器1320、内存1330、通信接口1340经由总线1350连接在一起。根据一个实施例,计算设备1300可以包括至少一个处理器1310,该至少一个处理器1310执行在计算机可读存储介质(即,存储器1320)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1320中存储计算机可执行指令,其当执行时使得至少一个处理器1310:获取各个流式数据处理资源的当前健康度、在前健康度和当前成功量;针对各个流式数据处理资源,基于该流式数据处理资源的当前健康度和在前健康度,确定该流式数据处理资源的当前负载预期变化量;基于各个流式数据处理资源的当前成功量以及当前负载预期变化量,确定所述各个流式数据处理资源的当前负载预期量;基于所述各个流式数据处理资源的当前负载预期量,确定各个流式数据处理资源的第一数据分配概率;以及根据所述第一数据分配概率将所述流式数据分配给所述各个流式数据处理资源中的对应流式数据处理资源。
应该理解,在存储器1320中存储的计算机可执行指令当执行时使得至少一个处理器1310进行本公开的各个实施例中以上结合图1-12描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-12描述的各种操作和功能。
具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。