一种面向实时流计算平台的负载均衡方法

文档序号:9202733阅读:569来源:国知局
一种面向实时流计算平台的负载均衡方法
【技术领域】
[0001] 本发明设及信息技术领域,具体设及一种面向实时流计算平台的负载均衡方法。
【背景技术】
[0002] 随着云计算、物联网等技术的兴起,数据正W前所未有的速度不断地增长和积累, 并且越来越多地W大规模、连续的流的形式出现在应用程序中,如移动互联网中的社交网 络数据,电子商务领域的用户消费数据,物联网领域由传感器设备产生的实时传感数据等。
[0003] 为此工业界和学术界开发了很多实时流计算平台,包括Twitter的Storm、 Microsoft的TimeStream、Y址00!的S4,W及斯坦福大学的STREAM、施乐公司的 TapeStry、加州大学伯克利分校的Te1egraph、布朗大学和麻省理工学院合作的Aurora, Apache的HadoopOnline等。
[0004] 海量数据流的计算超出了单机的处理能力,上述流计算平台均采用集群处理流数 据,必然要使用负载均衡技术提高集群的稳定性和资源利用率。然而,数据流产生速率高且 不能被完全存储、数据价值与实时性紧密相关、数据流未被及时处理则永久丢失等新特性, 给传统的负载均衡技术带来了新的挑战。
[0005] 目前现有的负载均衡技术存在W下一些问题:
[0006] 1)采用集中分发模式,仅能处理流量和后端节点有限的情况,而实时流计算平台 的数据量、任务量、节点规模都超越了传统负载均衡器的处理范围;
[0007] 2)采用全局会话表,因为流计算平台节点众多、流量大,如果每个节点发送数据时 都向全局会话表注册询问,全局会话表很容易工作过载,成为平台瓶颈;
[000引 3)在没有全局会话表的情况下,保持会话的一致性十分困难;

【发明内容】

[0009] 针对现有负载均衡技术存在的问题,本发明提供一种面向实时流计算平台的负载 均衡方法,能在没有全局会话表的情况下,保持会话一致性,实现云任务数据流量之间的均 衡。适应实时流计算平台节点多和数据流量大的特点,W提高流计算平台的稳定性和资源 利用率。
[0010] 本发明的目的在于提供一种面向实时流计算平台的负载均衡方法,包括W下步 骤:
[ocm] 1)当上游任务节点中的一当前任务节点出现过载,则从下游任务节点中寻找用W分担其负载的一迁移目的节点;
[0012] 2) -状态级调度器从其具有的一服务表中查询指向所述当前任务节点的一数据 项集合,然后向所述当前任务节点询问哪些数据项可W迁移至迁移目的节点;
[0013] 3)所述当前任务节点接收询问,查询所述当前任务节点的一连接表中的不活跃连 接,得到一可迁移数据项集合;
[0014] 4)所述当前任务节点根据所述可迁移数据项集合建立一转发表,用W转发在所述 服务表TD同步期内收的不一致数据;
[0015] 5)将所述转发表通知给所述状态级调度器,所述状态级调度器将所述转发表同步 给所有上游任务节点,用W更新所述服务表;
[0016] 6)所有上游任务节点完成同步,删除当前任务节点的转发表。
[0017] 进一步地,所述服务表定义为数据分配矩阵TD,nXm,行表示task,列表示data: [001 引
[0019] 进一步地,所述连接表定义为数据活跃矩阵D,lXm,表示数据的活跃情况:
[0020]
[002U 进一步地,所述转发表定义为数据分配掩码矩阵TDM,nXm,表示矩阵变更,与TD 相加,更新TD;
[0022]

[0023] 进一步地,步骤2)中所述数据项集合定义为:
[0024] T〇Task=ltdUI(i=task4)八(tdu=1)八(tdijGTD)}
[0025] 所述向所述当前任务节点询问哪些数据项可W迁移至迁移目的节点包括;根据当 前任务节点的过载程度选择TDhsk或其子集^裂^:^作为询问集合。
[0026] 进一步地,步骤3)中所述可迁移数据项集合定义为:
[0027] r召巧巧r嗎的,其中,TD邮={tdUI(tduGTDaJ八化J= 0)八(dijGD)}。
[002引进一步地,步骤5)中所述状态级调度器将所述转发表同步给所有上游任务节 点包括,所述状态级调度器将转发表TDM与服务表TD二者相加形成新的服务表TD",,= ID+TMD。
[0029] 进一步地,步骤5)所述同步的过程中,所述当前任务节点的转发表将后通知到的 上游任务节点发来的数据项转发给迁移目的节点,保证数据分组一致性。
[0030] 进一步地,所述状态级调度器在一云作业中与云任务一起创建和分发,所述当前 任务节点与迁移目的节点之间的数据流通不通过状态级调度器。
[0031] 通过采取上述的技术方案,本发明的方法对流计算平台进行流量级的负载均衡调 度,具有W下优点:
[0032] 1、本发明中的状态级调度器在云作业中随着云任务一起创建和分发,可W看做一 种特殊的云任务,数据本身不经过状态级调度器,状态级调度器岩机不影响业务运行,从而 提高了负载均衡方法的可用性;
[0033] 2、采用分布式会话表而非全局会话表,每台后端节点存储与自身相关的局部会话 表,状态级调度器根据需要询问相应的后端节点获得其需要的会话表;
[0034] 3、基于后端节点的横向转发,保证前端节点在同步期内仍然能保证会话的全局一 致性,只在短暂的同步期内生效,不会造成额外流量增加;
[0035] 4、负载迁移算法具有理论上的稳定性,保证迁移过程负载情况不发生新的震荡。
【附图说明】
[0036] 图1是本发明实施例中拓扑环境示意图。
[0037] 图2是本发明实施例中的状态级调度器分布示意图。
[003引图3是本发明的负载均衡模式与传统负载均衡模式对比示意图。
[0039] 图4是本发明实施例中的方法实施流程示意图。
[0040] 图5是本发明方法的数据结构示意图。
[0041] 图6是本发明实施例中动态负载均衡系统方框图。
[0042] 图7是本发明实施例中动态负载均衡闭环传递函数方框图。
【具体实施方式】
[0043] 为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作 详细说明如下。
[0044] 本发明的核屯、技术构思在于;
[0045] 1、使用状态级调度器,即协调器,其只在后端节点状态变更时才发生交互,因此不 存在瓶颈,同时由于数据本身不经过协调器,协调器岩机不影响业务运行,从而提高了负载 均衡系统的可用性;
[0046] 2、采用分布式会话表,即每台后端节点存储与自身相关的局部会话表,协调器根 据需要询问相应的后端节点获得其需要的会话表;
[0047] 3、基于后端节点的横向转发,保证前端节点在同步期内仍然能保证会话的全局一 致性,只在短暂的同步期内生效,不会造成额外流量增加。
[0048] 下面介绍本发明的面向实时流计算平台的负载均衡方法的主要原理:
[0049] 如图2,本发明中的状态级调度器在云作业中随着云任务一起创建和分发,可W看 做一种特殊的云任务,在云作业中负责对云任务之间的流量进行分配,使得云任务所在的 节点的负载比较平均,避免由于流量过于集中某一节点造成的节点过载。
[0化日]运行过程中,负载均衡器上的服务表前置到上游task,连接表后置到下游task, 流量不经过负载均衡调度器,流量通过上游task上的服务表进行分发,负载均衡调度器只 负责服务表项的迁移与同步,在同步期内依靠下游task之间的转发完成会话一致性。
[0化1] 本发明的方法主要体现为W下几个方面:
[0化2] 1)状态级调度器
[0化3]即协调器,如图2,W程序模块的形式存在,像云任务一样运行在某台节点上,不依 赖具体的硬件设备。调度器可W单独部署在1个节点上或是与云任务共用节点。每2级流 水之间至少有1个调度器,多个调度器可W部署在1个节点上。数据流只在上下级task之 间流动,而不经过调度器。每个调度器中包含2个单元:数据和业务逻辑,数据是指服务表 TD,业务逻辑是指完成从数据项到后端节点映射的代码。调度器其只在后端节点状态变更 时才发生交互。上级流水节点的云任务中包含服务表TD,连接表D存在于后端节点的云任 务中,在交互时后端节点产生转发表TDM,TDM被传递给调度器,调度器更新自己和前端节 点中的TD。更新过程中后端节点可能出现横向转发。
[0化4] 2)分布式会话表
[0055] 即连接表D,每台后端节点存储与自身相关的局部会话表。需要注意的是,该里的 "后端节点"是一个相对概念,是相对于其上级流水中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1