一种分布式数据流处理方法及装置的制造方法_2

文档序号:8265919阅读:来源:国知局
种分布式数据流处理装置,包括:
[0051]接收模块,用于接收第一节点发送的包含设定键值的状态信息迁出指示,并将所述状态信息迁出指示传输至发送模块;
[0052]发送模块,用于根据所述接收模块接收的状态信息迁出指示,确定本地生成的所述键值对应的数据流的第一状态信息,并将确定的所述第一状态信息发送给管理各工作节点的协调器。
[0053]第六方面,提供一种分布式数据流处理装置,包括:
[0054]接收模块,用于接收第一节点发送的包含设定键值的状态信息迁入指示,并将所述状态信息迁入指示传输至获取模块;
[0055]获取模块,用于根据所述接收模块接收的状态信息迁入指示,从管理各工作节点的协调器中获取所述第二节点发送到协调器中的所述键值对应的数据流的第一状态信息,并将获取的所述第一状态信息与本地生成的对应所述键值的数据流的第二状态信息进行
I=I TT O
[0056]采用上述第一方面提供的分布式数据流处理方法,第一节点可以在确定下游的第二节点满足设定的负载迁移条件后,将第二节点负责处理的键值对应的数据流迁移至当前累计负载较小的第三节点进行处理,并指示第二节点和第三节点进行状态信息同步,从而可以针对同一键值的数据流进行负载均衡处理。
【附图说明】
[0057]图1为本发明实施例一进行分布式数据流处理的方法流程图;
[0058]图2为本发明实施例二进行分布式数据流处理的方法流程图;
[0059]图3为本发明实施例三进行分布式数据流处理的方法流程图;
[0060]图4为本发明实施例的分布式系统中各工作节点及每个工作节点的功能单元分布示意图;
[0061]图5为本发明实施例中第一节点进行负载迁移的方法流程图;
[0062]图6为本发明实施例中工作节点间进行状态信息同步的示意图;
[0063]图7为与图6相对应的本发明实施例中进行状态信息同步的方法流程图;
[0064]图8本发明实施例的分布式系统中工作节点进行过载反馈的示意图;
[0065]图9为与图8相对应的本发明实施例的分布式系统中工作节点进行过载反馈的方法流程图;
[0066]图10为本发明实施例一提供的分布式数据流处理装置示意图;
[0067]图11为本发明实施例二提供的分布式数据流处理装置示意图;
[0068]图12为本发明实施例三提供的分布式数据流处理装置示意图;
[0069]图13为本发明实施例四提供的分布式数据流处理装置示意图;
[0070]图14为本发明实施例五提供的分布式数据流处理装置示意图;
[0071]图15为本发明实施例六提供的分布式数据流处理装置示意图。
【具体实施方式】
[0072]下面结合说明书附图对本发明实施例作进一步详细描述。
[0073]如图1所示,为本发明实施例一进行分布式数据流处理的方法流程图,包括以下步骤:
[0074]SlOl:第一节点根据需要分配给下一跳工作节点的数据流的键值,确定第二节点为处理所述键值对应的数据流的下一跳工作节点;
[0075]S102:所述第一节点在确定所述第二节点满足设定的负载迁移条件后,将所述需要分配给下一跳工作节点的数据流从所述第二节点迁移至第三节点进行处理,并指示所述第二节点和第三节点同步所述键值对应的数据流的状态信息;
[0076]其中,所述第二节点和第三节点属于所述第一节点的下一跳工作节点集合,所述第三节点的累计负载小于所述第二节点的累计负载。
[0077]采用上述方法,第一节点可以在确定下游的第二节点满足设定的负载迁移条件后,将第二节点负责处理的键值对应的数据流迁移至当前累计负载较小的第三节点进行处理,并指示第二节点和第三节点进行状态信息同步,从而可以针对同一键值的数据流进行负载均衡处理。
[0078]可选地,所述第三节点为当前所述第一节点的下一跳工作节点集合中具有最小累计负载的工作节点。
[0079]可选地,所述方法还包括:
[0080]第一节点根据需要分配给下一跳工作节点的数据流的键值,在确定当前不存在处理该键值对应的数据流的下一跳工作节点时,将所述需要分配给下一跳工作节点的数据流分配给当前所述第一节点的下一跳工作节点集合中具有最小累计负载的工作节点进行处理。
[0081]在具体实施过程中,第一节点分配给下一跳工作节点的数据流可以是本地生成的初始数据流,也可以是转发的其它工作节点生成的数据流;第一节点根据需要分配给下一跳工作节点的数据流的键值,判断该键值对应的数据流是否已经被分配到某个下一跳工作节点,若确定该键值对应的数据流已经被分配到第二节点,则判断第二节点是否已满足负载迁移条件,若满足,则将该键值对应的数据流迁移至当前累计负载比第一节点的累计负载小的第三节点进行处理,这里的第三节点具体可以是当前第一节点的所有下一跳工作节点中具有最小累计负载的工作节点;若不满足,则继续将该键值对应的数据流分配给第二节点进行处理;若该键值对应的数据流还没有被分配到任何一个下一跳工作节点,则将该数据流分配给当前具有最小累计负载的工作节点进行处理;其中,每个键值对应的数据流可以称为一个数据项目。
[0082]可选地,所述设定的负载迁移条件包括以下条件中的一种或多种:
[0083]第一个条件:所述第二节点的累计负载超过设定阈值;
[0084]第二个条件:所述第二节点的累计负载与第三节点的累计负载的比值和/或差值超过设定阈值;
[0085]除此,负载迁移条件除包括上述两个条件中的一个或两个之外,还可以包括:
[0086]第三个条件:当前时间与所述第一节点最近一次进行数据流迁移处理的时间的时间间隔不小于设定阈值。
[0087]本发明实施例中,可以在以上第一个和/或第二个条件满足时,将所述键值对应的数据流从所述第二节点迁移至当前具有最小累计负载的第三节点进行处理;在具体实施中,为了兼顾系统开销,可以在以上第一个和/或第二个条件满足时,查看当前时间与所述第一节点最近一次进行数据流迁移处理的时间的时间间隔是否小于设定阈值,若达到或超过设定阈值,再将所述键值对应的数据流从所述第二节点迁移至当前具有最小累计负载的第三节点进行处理。
[0088]上述第二节点及第三节点的累计负载可根据以下公式进行计算:
[0089]可选地,所述第一节点根据以下公式确定设定时间段内所述第一节点的任意一个下一跳工作节点的累计负载W:
[0090]W=cXW' +(l-c)Xy;
[0091]其中,y为所述第一节点在所述设定时间段内分配给所述任意一个下一跳工作节点的负载,r为所述任意一个下一跳工作节点在所述设定时间段的前一个时间段结束时的累计负载,c为常数,且O < c < I。
[0092]比如,针对上述第二节点,上述公式中,y为第一节点在设定时间段内分配给第二节点的负载,该负载可以包括一个键值对应的数据流,也可以包括多个键值对应的数据流;针对其中任意一个键值,也即任意一个数据项目,假设在该设定时间段开始时该数据项目对应的负载为W,在该设定时间段内,该数据项目新增的负载为V,则在该设定时间段结束时,将该数据项目对应的负载更新为W = cXw' +(1-C) Xv。
[0093]可选地,所述第一节点指示所述第二节点和第三节点同步所述键值对应的数据流的状态信息,包括:
[0094]所述第一节点向所述第二节点发送包含所述键值的状态信息迁出指示,以及,向所述第三节点发送包含所述键值的状态信息迁入指示;
[0095]其中,所述状态信息迁出指示用于指示所述第二节点将本地生成的所述键值对应的数据流的第一状态信息发送给管理各工作节点的协调器;所述状态信息迁入指示用于指示所述第三节点从管理各工作节点的协调器中获取所述键值对应的数据流的第一状态信息,并将获取的所述第一状态信息与本地生成的对应所述键值的数据流的第二状态信息进行合并。
[0096]在具体实施过程中,第一节点在将第二节点当前处理的所述键值对应的数据流,也即数据项目,迁移至第三节点进行处理的同时,需要针对该数据项目,同步第一节点和第三节点间的状态信息;具体地,本发明实施例中采用管理各工作节点的协调器作为两节点间状态信息同步的中转站,第二节点将之前存储的该数据项目的第一状态信息发送给协调器,以使第三节点可以从该协调器获取该第一状态信息,第三节点在获取该第一状态信息后,可以将该第一状态信息与第三节点新生成的对应该数据项目的第二状态信息进行合并,如此完成了对迁移的数据项目的状态信息同步。在具体实施中,第一节点可以向第二节点和第三节点分别发送状态信息迁出指示和状态信息迁入指示,该指示可以显式指示第二节点和第三节点进行状态信息同步,也可以隐式指示第二节点和第三节点进行状态信息同步,比如,第一节点可以直接通知第二节点将设定键值对应的数据流的第一状态信息迁出,并发送给协调器,也可以通知第二节点所述第一节点已经将所述键值对应的数据流从该第二节点迁移到了其它工作节点进行处理,第二节点在接收到该通知后,根据各工作节点间的预先约定,将本地生成的该键值对应的数据流的第一状态信息发送至协调器;相应地,第一节点可以直接通知第三节点从协调器迁入设定键值对应的数据流的第一状态信息,并将该第一状态信息与第三节点新生成的第二状态信息合并,也可以通知第三节点所述第一节点已经将所述键值对应的数据流从其它工作节点迁移到了第三节点进行处理,第三节点在接收到该通知后,根据各工作节点间的预先约定,从协调器获取所述第一状态信息,并将所述第一状态信息与本地生成的该键值对应的数据流的第二状态信息
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1