一种海量数据环境下负载均衡方法及系统与流程

文档序号:11843242阅读:209来源:国知局
一种海量数据环境下负载均衡方法及系统与流程

本发明涉及一种互联网业务应用、网络负载均衡领域方法,具体讲涉及一种海量数据环境下负载均衡方法和系统。



背景技术:

云计算是分布式技术、虚拟化技术等多种技术混合创新的结果。随着云计算的快速发展,规模扩大,云计算服务提供商所需要处理的请求数量也越庞大,其所面临的主要挑战:无论突发状况在何时发生都要保持系统性能稳定或者更好。由于云计算平台具有服务器节点资源异构和应用多样等特点,这样可能会导致系统出现负载不均衡的问题,致使有些节点负载过重,有些节点处于闲置,从而很大程度上影响了云计算平台的整体性能。因此,利用合适的负载均衡策略来处理云服务器节点之间的负载,以提高云计算平台资源利用率和整体性能,成为了目前云计算领域迫切需要解决的重要问题之一。

而服务器集群的负载均衡技术是支持云数据中心的核心。其核心是将云中计算资源统一进行管理和调度,并将其作为一个资源整体向用户提供服务,将用户的请求分配给资源池中的各类资源进行分布式计算,然后将所得的结果进行汇总并反馈给用户。这与负载均衡技术的思想很相似,云数据中心也是采用负载均衡技术的思想对云内的资源进行管理调度。云端性能的提升也要通过利用服务器集群技术。与服务器集群技术相似,云端的节点资源产生故障并不会影响整个云端的服务能力,而对于云端来讲,节点之间的相对独立性也保证了整个云端的高可靠性、高可用性和高可扩展性。

传统的集群负载均衡系统,为了提高服务器集群的吞吐量和可用性,通常在客户端和服务器之间设计一个中间层,即负载均衡器。负载均衡器采用合理的分配方式可以使集群中不同服务器间的负载更加均衡。负载共享的目标只是简单的负载重分配过程,负载均衡则期望实现服务器集群的基本均衡。传统的负载均衡模型具有维护成本低,维护起来方便等比较明显的优点,有效的提高了集群系统的吞吐量和服务请求处理能力,降低了系统对用户的响应时间。但其缺点也不容忽视,传统的负载均衡模型存在可扩展性不足、重复监测、不支持高可靠性等缺点。

而LVS集群负载均衡模型的好坏主要从使用的调度策略来进行评价。目前共有10种调度策略,其中常用的有四种:轮转法(RR)、加权轮转(WRR)、最小连接(LC)、加权最小连接(WLC)。在LVS常用的四种调度算法中,其中RR、LC都没有考虑服务器间处理能 力差异,当各节点任务执行时间差别较大时,易造成节点失衡,导致集群效率下降。WLC、WRR算法都是基于有性能差异的服务器,WRR和RR类似都没有反映服务器当前状态,属于静态调度。

因此,采用合适的负载均衡策略并克服传统负载均衡系统的缺点,提出适用于云平台的负载均衡方案,以提高云计算平台负载均衡效率和资源利用率和整体性能,是目前云计算领域迫切需要解决的重要问题之一。



技术实现要素:

为克服上述现有技术的不足,本发明提供一种海量数据环境下负载均衡方法和系统。

实现上述目的所采用的解决方案为:

一种海量数据环境下负载均衡方法,所述方法包括:

I、云服务器接收任务请求并自动生成相应任务的任务代理模块,所述任务代理模块分析任务请求的数据包,将分析结果传送给整合模块;

II、所述整合模块预处理数据包,并将处理后的数据存储在共享知识库中;

III、调度管理模块进行任务分类,并调度负载均衡策略;

IV、执行代理模块接收所述调度管理模块下发的任务指令,并根据所述负载均衡调度策略和各服务器的负载信息将任务分配到合适的云服务器节点上进行处理。

优选地,所述步骤I还包括,所述任务代理模块监听网络通信状况,获得状况信息并发送给所述调度管理模块,作为所述调度管理模块原始数据。

优选地,所述步骤II中,整合模块预处理数据包,包括以下步骤:

所述整合模块接收各所述任务代理模块发送的各种数据,按顺序对发自各所述任务代理模块的数据进行整合,生成相应的任务信息;

所述整合模块将各个数据转换成可被系统识别的统一格式,并存储于所述共享知识库中。

优选地,所述共享数据库包括请求任务表、负载均衡调度算法表和服务器负载信息表;

请求任务列表,存储所述任务代理模块对任务请求数据包进行分析整理后得到的数据信息,每个请求任务对应于表中的一条记录;

负载均衡调度策略表,用于存储分类的负载均衡调度策略,并将用户请求任务分成N种类型,每一类使用固定的负载均衡策略;

服务器负载信息表,用于记录云端虚拟服务器节点实时负载信息,包括CPU利用率、内存利用率、网络利用率、吞吐率和当前服务器连接速率。

优选地,所述步骤III包括:

所述调度管理模块根据所述共享数据库中的请求任务表获得任务类型;

通过推理机制从所述共享数据库的负载均衡调度策略表中查询可用的负载均衡调度测量,生成负载均衡调度决策结果并立即发送给相应的执行代理模块。

优选地,当一个所述调度管理模块无法做出决策时,根据所述任务代理模块之间的沟通协商机制,同时将一个任务发送到多个所述调度管理模块进行分布式决策,再通过预处理算法将句柄信息转换成统一的决策结果,发送给合适的所述执行代理模块执行任务。

优选地,所述方法还包括:获取云端服务器节点的实时负载信息,并存储于所述共享知识库中。

一种海量数据环境下负载均衡系统,所述系统包括代理模块、整合模块、共享知识库、调度管理模块、数据采集模块和执行代理模块;

所述系统接收任务请求后,所述系统生成相应的所述任务代理模块,所述任务代理模块分析所述任务请求的数据包,并将分析结果发送给所述整合模块;

所述整合模块,用于接收各所述任务代理模块发送的各种数据,按顺序对发自各所述任务代理模块的数据进行整合,生成相应的任务信息;将各个数据转换成可被系统识别的统一格式,并存储于所述共享知识库中;

所述共享知识库,包括请求任务表、负载均衡调度算法表和服务器负载信息表,存储相应的数据;

所述调度管理模块,用于根据所述共享数据库中的请求任务表获得任务类型;及,通过推理机制从所述共享数据库的负载调度算法表中查询可用的负载均衡算法,生成负载调度决策结果并立即发送给相应的执行代理模块。

所述执行代理模块,用于接收所述调度管理模块下发的任务指令,并根据所述负载均衡调度策略和各服务器的负载信息将任务分配到合适的云服务器节点上进行处理;

所述数据采集模块,与所述执行代理模块交互,实时采集执行代理模块的信息,从而及时收集云端服务器节点的实时负载信息,将所述实时负载信息存储于共享知识库中的服务器负载信息表中。

优选地,所述共享数据库包括请求任务表、负载均衡调度算法表和服务器负载信息表;

请求任务列表,存储所述任务代理模块对任务请求数据包进行分析整理后得到的数据信息,每个请求任务对应于表中的一条记录;

负载均衡调度策略表,用于存储分类的负载均衡调度策略,并将用户请求任务分成N种 类型,每一类使用固定的负载均衡策略;

服务器负载信息表,用于记录云端虚拟服务器节点实时负载信息,包括CPU利用率、内存利用率、网络利用率、吞吐率和当前服务器连接速率。

优选地,所述实时负载信息,包括:CPU利用率、内存利用率、网络利用率、云虚拟硬盘吞吐率和当前服务器连接速率。

与现有技术相比,本发明具有以下有益效果:

1、分类思想。通过引入请求任务识别与分类思想,结合Agent技术,实现了集群任务的自动识别及分类处理,提高了集群系统的运行效率,也明显提高了云计算虚拟节点集群系统的整体性能。

2、Agent技术融合。通过把Agent技术引入云平台集群负载均衡系统中,创新性的构建了一个基于Agent的动态自适应集群负载均衡模型,有效地改善了因云计算节点异构性、多样性而带来的处理效率不高、处理任务过于复杂等缺点,提高了集群系统的运行效率,不但能够增加云端集群负载系统的智能性,同时云端集群负载系统的自适应能力也得到了加强。

附图说明

图1为本实施例中海量数据环境下负载均衡系统结构图;

图2为本实施例中共享知识库结构图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步的详细说明。

考虑云计算平台节点的异构性和应用多样性以及海量资源等特点,本方案利用服务器集群技术,本发明提供了一种海量数据环境下负载均衡方法,包括以下步骤:

一种海量数据环境下负载均衡方法,其特征在于:所述方法包括:

I、云服务器接收任务请求并自动生成相应任务的任务代理模块,所述任务代理模块分析任务请求的数据包,将分析结果传送给整合模块;

II、所述整合模块预处理数据包,并将处理后的数据存储在共享知识库中;

III、调度管理模块进行任务分类,并调度负载均衡策略;

IV、执行代理模块接收所述调度管理模块下发的任务指令,并根据所述负载均衡调度策略和各服务器的负载信息将任务分配到合适的云服务器节点上进行处理。

所述步骤I,进一步包括了,所述任务代理模块监听网络通信状况,获得状况信息并发送给所述调度管理模块,作为所述调度管理模块原始数据。

所述步骤II中,整合模块预处理数据包,包括以下步骤:

所述整合模块接收各所述任务代理模块发送的各种数据,按顺序对发自各所述任务代理模块的数据进行整合,生成相应的任务信息;

所述整合模块将各个数据转换成可被系统识别的统一格式,并存储于所述共享知识库中。

如图2所示,图2为本实施例中共享知识库结构图,共享数据库包括请求任务表、负载均衡调度算法表和服务器负载信息表。

请求任务列表,存储所述任务代理模块对任务请求数据包进行分析整理后得到的数据信息,每个请求任务对应于表中的一条记录;

负载均衡调度策略表,用于存储分类的负载均衡调度策略,并将用户请求任务分成N种类型,每一类使用固定的负载均衡策略;

服务器负载信息表,用于记录云端虚拟服务器节点实时负载信息,包括CPU利用率、内存利用率、网络利用率、吞吐率和当前服务器连接速率。

步骤III具体包括以下步骤:

S301、所述调度管理模块根据所述共享数据库中的请求任务表获得任务类型;

S302、所述调度管理模块通过推理机制从所述共享数据库的负载均衡调度策略表中查询可用的负载均衡调度策略,生成负载调度决策结果并立即发送给相应的执行代理模块。

而,当一个所述调度管理模块无法做出决策时,根据所述任务代理模块之间的沟通协商机制,同时将一个任务发送到多个所述调度管理模块进行分布式决策,再通过预处理算法将句柄信息转换成统一的决策结果,发送给合适的所述执行代理模块执行任务。

方法执行过程中,通过数据采集模块与执行代理模块通信,采集执行代理模块的数据,从而及时收集云端服务器节点的实时负载信息,并存储于所述共享知识库中。

所述实时负载信息包括CPU利用率、内存利用率、网络利用率、云虚拟硬盘吞吐率和当前服务器连接速率等。

上述数据存储在共享知识库中,供决策时参考。可根据负载策略和算法计算出各负载节点的规模,决定是否更新服务器负载信息表条目。

本发明还提供了一种海量数据环境下负载均衡系统,该系统包括代理模块、整合模块、共享知识库、数据采集模块、数据采集模块、调度管理模块和执行代理模块。

所述系统接收任务请求后,所述系统生成相应的所述任务代理模块,并分析所述任务请 求的数据包,手机任务的相关数据信息发送给所述整合模块;

所述整合模块,用于预处理数据包,并将处理后的数据存储在共享知识库中;

所述共享知识库,主要用于存储两类数据信息,一类是智能系统本身用到的领域知识和推理知识;另一类为系统在运行过程中所产生的最终结果和用于推理过程的中间结果。

该共享知识库,包括请求任务表、负载均衡调度算法表和服务器负载信息表,存储相应的数据。

请求任务列表,其数据由代理模块对请求数据包进行分析整理后得到的数据信息组成,每个请求任务对应于表中的一条记录。它是选择下一步所要采用的负载均衡调度策略时的基本依据。在本模型中,请求任务的类型主要分为N种,包括基于WEB的请求、基于视频流数据处理的请求和并行/分布式计算请求等。

负载均衡调度策略表,负责存储分类的负载均衡调度策略,并将用户请求任务分成N种类型,每一类使用固定的负载均衡策略。

所述请求任务的类型主要分为N种,即基于WEB的请求、基于视频流数据处理的请求和并行/分布式计算请求等。

每一类型对应固定的负载均衡策略,本实施例中采用目前主流的负载均衡算法,包括:加权最小调度算法、自适应遗传算法、一般扩散算法等。

服务器负载信息表,用于记录由数据采集模块获取的云端虚拟服务器节点实时负载信息,包括CPU利用率、内存利用率、网络利用率、吞吐率和当前服务器连接速率等。

所述调度管理模块,用于根据所述共享数据库中的请求任务表获得任务类型;及,通过推理机制从所述共享数据库的负载均衡调度算法表中查询可用的负载均衡算法,生成负载调度决策结果并立即发送给相应的执行代理模块。

对上述推理机制进一步说明,推理机制包括两部分内容:知识规则集和推理机。在本系统中,知识规则集和推理机构将以功能模块的形式打包进Agent中,即调度管理模块。

知识规则集中任务类型和负载均衡算法一一对应,推理机制采用正向推理的方法,即推理机制进行的时候,遍历规则集的所有规则,并选择与之对应的规则,确定采用的负载均衡算法,推理完成。

所述执行代理模块,用于接收所述调度管理模块下发的任务指令,并根据所述负载均衡调度策略和各服务器的负载信息将任务分配到合适的云服务器节点上进行处理。

所述数据采集模块,与所述执行代理模块交互,实时采集执行代理模块的信息,从而及时收集云端服务器节点的实时负载信息,存储于共享知识库中。

所述实时负载信息,包括:CPU利用率、内存利用率、网络利用率、云虚拟硬盘吞吐率和当前服务器连接速率。

如图1所示,图1为本实施例中一种海量数据的云计算环境下负载均衡系统,结合该图对本发明的系统和方法做进一步说明。

首先,当客户端的请求任务n到达负载均衡系统后,系统自动生成相应的代理模块:Agent1、Agent2……Agent n。

然后,系统分析请求任务的数据包,收集任务的相关数据信息并传送给整合模块,同时监听网络通信状况,为任务管理和调度Agent提供原始数据。

接着,整合模块按顺序对发自各任务Agent1、Agent2……Agent n的各种数据进行整合,生成相应的任务信息;通过Agent的预处理算法,整合模块将各个数据转换成可以被系统识别的统一格式,存储在共享知识库中。

再接着,调度管理模块根据所述共享数据库中的请求任务表获得任务类型;及,通过推理机制从所述共享数据库的负载调度算法表中查询可用的负载均衡算法,生成负载调度决策结果并立即发送给相应的执行代理模块。本实施例中,由于一个调度管理模块无法做出决策时,根据Agent之间的沟通协商机制,同时将一个任务发送到多个调度管理模块,即调度管理模块1、调度管理模块2……调度管理模块n来进行分布式决策,通过预处理算法将句柄信息转换成统一的决策结果,发送给合适的执行代理模块,即执行Agent1、执行Agent2……执行Agent n来执行任务。

最后需要说明的是,在整个过程中,数据采集Agent与执行Agent1、执行Agent2……执行Agent n通信,实时获得各执行Agent的数据,从而实现及时收集云端服务器节点的实时负载信息,存储于共享数据库中。

上述实时负载信息包括:包括CPU利用率、内存利用率、网络利用率、云虚拟硬盘吞吐率和当前服务器连接速率等。这些信息都存储在共享知识库中,供决策时参考。根据负载策略和算法计算出各负载节点的规模,决定是否更新服务器负载信息表条目。

最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。

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