实现负载均衡的方法、负载均衡服务器以及集群系统的制作方法

文档序号:7739817阅读:150来源:国知局
专利名称:实现负载均衡的方法、负载均衡服务器以及集群系统的制作方法
技术领域
本发明涉及计算机集群技术领域,更为具体地,涉及一种实现负载均衡的方法、负
载均衡服务器以及集群系统。
背景技术
随着应用系统数据量的增长,使得数据处理请求和计算强度相应地增长,而日益 增长的数据处理请求和计算强度对系统的规模和处理能力提出了更高的要求。为了应对这 样的趋势,可以采用多机的集群运行环境来协同工作并处理各种任务请求,从而达到单系 统高并发和多系统融合的目的。同时,通过集群实现系统无缝扩展,使系统性能和硬件的增 加得到成比例的提高。 目前,大多数集群方案都是依托于硬件的基础上,实现一个硬件集群。但是,这些 集群方案仅根据集群系统中的单一资源来分配任务请求,而且不能根据需要实现灵活的配 置,造成集群中一些平台的资源浪费,降低了集群系统的处理能力,使得集群系统不能做出 正确的分配决策。

发明内容
本发明的目的在于提供一种实现负载均衡的方法、负载均衡服务器以及集群系 统,用于根据集群系统中的各种资源信息分配任务请求,从而实现集群系统的灵活配置和 更有效的负载均衡。
—方面,本发明提供了一种实现负载均衡的方法,该方法包括
负载均衡服务器接收任务请求, 根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任 务请求的子节点, 将所述任务请求发送给确定出的子节点。
另一方面,本发明提供了一种负载均衡服务器,该负载均衡服务器包括
接收模块,用于接收任务请求和至少两个子节点分别发送的各种资源信息;
负载均衡模块,用于根据负载均衡策略和所述各种资源信息确定处理所述任务请 求的子节点; 分配模块,用于将所述任务请求发送给确定出的子节点。
再一方面,本发明还提供了一种集群系统,该集群系统包括
至少两个子节点和负载均衡服务器; 其中,所述至少两个子节点分别采集各自的各种资源信息,并将所述各种资源信 息发送给负载均衡服务器,所述负载均衡服务器接收任务请求和所述各种资源信息,根据 负载均衡策略和所述各种资源信息确定处理该任务请求的子节点,并将该任务请求发送给 确定出的子节点。 实施本发明的一种实现负载均衡的方法、负载均衡服务器以及集群系统具有如下
6有益效果通过根据负载均衡策略和集群中的至少两个子节点分别发送的各种资源信息确 定处理任务请求的子节点,在集群系统中实现最合理的资源分配,从而实现系统的负载均 衡,并且可以根据需要实现灵活的配置,使系统的处理效率得到最大的提高。


图1是本发明的一种实现负载均衡的方法的流程图; 图2是本发明的实现负载均衡的方法的实施例一 ; 图3是本发明的实现负载均衡的方法的实施例二 ; 图4是本发明的一种集群系统的结构示意图; 图5是本发明的集群系统中的负载均衡服务器的结构示意图; 图6是本发明的负载均衡服务器中的负载均衡模块的结构示意图; 图7是本发明的集群系统中的负载均衡服务器的实施例一 ; 图8是本发明的集群系统中的负载均衡服务器的实施例二 ; 图9是本发明的集群系统中的负载均衡服务器的实施例三。
具体实施例方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发 明作进一步地详细描述。
图1是本发明的一种实现负载均衡的方法的流程图。如图1所示,该方法包括
SlOl,负载均衡服务器接收任务请求。 由于在集群系统中通常对添加类型的任务请求做负载均衡,因此,在S101中 接收到的任务请求指代本地添加任务请求或者远程添加任务请求。另外,为了给集群 系统提供一个接收任务请求的可靠的通路,本发明实施例优选采用MINA (Multipurpose Infrastructure for Network Applications)的点对点的模式来接收任务请求,其中, MINA是开源组织APACHE维护的一个网络应用程序框架,用户利用MINA可以容易地开发 高性能和高伸縮性的网络应用程序。当然,本发明实施例也可以采用JAVA中基于TCP/IP socket通讯方式的其他模式接收。 S102,根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理该 任务请求的子节点,包括两种实施方式 实施方式一 根据配置的最小资源处理数算法和所述各种资源信息确定出处理该 任务请求的子节点;或者 实施方式二 根据配置的加权轮叫调度算法和所述各种资源信息确定出处理该任 务请求的子节点。 需要说明的是,所述至少两个子节点是按照配置的时间间隔分别定时采集并发送 所述子节点的各种资源信息,但是,如果子节点过于频繁的采集并发送资源信息,则会影响 集群系统的性能和稳定性,因此,在实际应用中,通常以秒为单位来配置所述时间间隔。在 本发明的一种实施方式中,可以配置该时间间隔为5秒,在本发明的其他实施方式中,技术 人员可以在满足集群系统的性能和稳定性的基础上根据实际情况灵活地配置该时间间隔。
S103,将所述任务请求发送给确定出的子节点。
其中,为了给集群系统提供一个发送任务请求的可靠、信赖的通路,本发明实施例 优选地采用MINA的点对点的模式将任务请求发送到确定出的子节点,当然,也可以采用基 于TCP/IP socket通讯方式的其他模式发送。
下面对S102中的实施方式一做详细的说明。 实施方式一 根据配置的最小资源处理数算法和所述至少两个子节点分别发送的 各种资源信息确定出处理该任务请求的子节点,具体为 为集群系统中的至少两个子节点中的各个子节点设置节点权值,为至少两个子节 点分别发送的各种资源信息中的每一种资源信息设置资源值和资源负载权值,所述节点权 值、资源值和资源负载权值均可以由技术人员根据实际需要进行设置和修改。其中,所述资 源信息包括线程使用率、CPU使用率、内存使用率和正在处理的任务请求数量,当然,本发明 实施例的S102中的实施方式一并不限于上述四种资源信息,还可以由技术人员根据实际 需要设置应该考虑的资源信息的种类。节点权值表示节点的处理能力,节点权值越高,该节 点的处理能力越强,得到任务请求的机会也就越大。资源值是指所述资源信息的值。设置 资源负载权值的目的在于在资源采集时每种资源都会得到一个数值,但是由于各个资源 的类型不一致,对任务请求的处理所造成的影响也不一致,所以这里就需要将这个数值做 修饰,使各个资源基于统一的标准。例如,对于CPU使用率和线程使用率这两种资源信息, 如果需要加大CPU对任务请求处理的影响则加重CPU使用率的资源负载权值,如果需要加 大线程对任务请求处理的影响则加重线程使用率的资源负载权值; 对各个子节点中的每一个子节点按如下处理得到该各个子节点各自的负载值分 别对该子节点的每一种资源信息的资源值和资源负载权值做乘积处理得到第一结果值,将 各种资源信息的第一结果值相加得到第二结果值,将该第二结果值与该子节点的节点权值 做乘积处理得到该子节点的负载值; 根据各个子节点的负载值确定出处理该任务请求的子节点,具体地,根据预先配
置的规则,将各个子节点中负载值符合该规则的子节点确定为处理该任务请求的子节点。
在本发明的一种实施方式中,上述预先配置的规则可以是选择该各个子节点中负载值最小
的子节点,在本发明的其他实施方式中,上述预先配置的规则可以是选择该各个子节点中
负载值次小的子节点,或者可以由技术人员根据实际需要配置所述规则。 例如,集群系统中有m个子节点,m是自然数,可以由技术人员根据实际需要设置
集群系统中子节点的个数,该m个子节点中的每一个子节点的各种资源信息共有n种,n是
自然数,可以由技术人员根据实际需要设置应该考虑的资源信息的种类,则 将节点权值记为M,该m个子节点的节点权值记为M = {M。, Mn M2, M3,. . . , Mm—卩,Mi
代表集群系统中第i个子节点的节点权值; 将资源值记为13 ,该n种资源信息的资源值记为13 = {|3。, 1^, P2, P3,...,
P J , 13 i代表第i种资源信息的资源值; 将资源负载权值记为W,该n种资源信息的资源负载权值记为W = {W。, W15 W2, W3, . . . , Wn—J , Wi代表第i种资源信息的资源负载权值; 将负载值记为L,该m个子节点的负载值记为L = {L。, Ln L2, L3, . . . , Lm—卩,代
表第i个子节点的负载值。 那么,该集群系统中第k(k = 1,2,3, . . . , m)个子节点的负载值Lk为
;=2(『,/ ,)xM* 最后按照上述由技术人员根据实际需要配置的规则,将Lk(k = 1,2,3, . . . , m)的 值符合该规则的子节点确定为处理该任务请求的子节点,具体而言,可以选择Lk(k = 1,2, 3, . . . , m)中值最小的子节点为处理该任务请求的子节点,当然,也可以选择Lk(k = 1,2, 3,. . . ,m)中值次小的子节点为处理该任务请求的子节点,或者根据其他预先配置的规则确 定处理该任务请求的子节点。 在本发明的一种优选实施方式中,所述资源信息还包括处理完毕的上一个任务请 求的信息,当根据最小资源处理数算法和各种资源信息确定处理当前任务请求的子节点 时,就会考虑到该处理完毕的上一个任务请求的信息。由于任务请求的处理、响应的时间比 子节点采集并发送资源信息的时间间隔短很多,不是一个数量级别,因此,采用这种优选实 施方式,即使当接收到的任务请求数量爆发性地增长时,也不会出现在上述时间间隔内将 所有接收到的任务请求都发送给根据该算法和各种资源信息确定出的同一个子节点的情 况,不会因为任务请求数量爆发性地增长而影响整个集群系统的正常运行。当子节点再次 发送各种资源信息时,新的资源信息替换掉原有资源信息,随后继续执行根据最小资源处 理数算法和各种资源信息确定出处理任务请求的子节点的步骤。 此外,在S102中的实施方式一中,作为另一种优选实施方式,所述资源信息还可
以包括各个子节点的平台的状态信息和/或各个子节点处理任务请求后的响应信息,其
中,所述子节点的平台的状态信息包括平台正常工作和平台非正常工作,所述响应信息包
括处理成功和处理失败。在根据配置的最小资源处理数算法和各种资源信息确定处理该任
务请求的子节点之前,S102步骤还可以包括根据所述状态信息和/或响应信息判断在所述
各个子节点中是否存在不可用的子节点,当判断为否时,继续执行所述根据配置的最小资
源处理数算法和各种资源信息确定出处理所述任务请求的子节点的步骤,当判断为是时,
将所述不可用的子节点删除,然后执行所述根据配置的最小资源处理数算法和各种资源信
息确定出处理所述任务请求的子节点的步骤。其中,当所述状态信息为平台非正常工作和
/或所述响应信息为处理失败的比例超出第一阈值时,则判断为存在不可用的子节点,否
则判断为不存在,其中,所述第一阈值可以由技术人员根据所述各个子节点处理的任务请
求的性质进行设置,例如,对于比较敏感的容错率较低的任务请求,可设置较低的第一阀值
(如20% ),对于容错率较高的任务请求,可设置较高的第一阈值(如50% ),当然,所述第
一阈值并不限于上述两种数值,技术人员可以根据实际需要对第一阈值进行设置。可选地,
可以利用JAVA中的群组通讯工具JGroup的组管理机制来删除所述不可用的子节点。通过
将不可用的子节点删除,避免了分配错误,提高了最小资源处理数算法的效率。 由上述可知,本发明实施例的S102中的实施方式一采用最小资源处理数算法,可
以由技术人员根据实际需要灵活地配置资源信息,即使当集群系统中的子节点处理性能各
不相同时,或者当接收到任务请求的时间变化很大时,都能够在集群系统中实现合理的资
源分配。 下面对S102中的实施方式二作详细的说明。 实施方式二 根据配置的加权轮叫调度算法和至少两个子节点分别发送的各种资 源信息确定出处理该任务请求的子节点,具体为
9
根据所述各种资源信息为所述至少两个子节点中的各个子节点设置权重值,其 中,所述资源信息包括线程使用率、CPU使用率、内存使用率等,如上所述,子节点按照配置 的时间间隔定时采集并发送各种资源信息,因此当子节点再次发送各种资源信息时,新的 资源信息替换掉原有资源信息。当然,本发明实施例的S102中的实施方式二并不限于上述 三种资源信息,还可以由技术人员根据实际需要设置应该考虑的资源信息的种类。所述权 重值可以由技术人员根据实际需要以及所述资源信息进行设置; 根据所述各个子节点的权重值确定出处理所述任务请求的子节点,其中,权重值 表示各个子节点的处理能力,权重值之间的比例也就是该算法确定出的处理任务请求的子 节点的比例。例如,对于一个集群系统中的子节点S = {S。, Sn S2, . . . , Sn—J , n表示该集群 系统中的子节点的数目,S。的权重是1, S工的权重是5,则S工处理5次任务请求S。才会处理一次。 此外,在S102中的实施方式二中,作为另一种优选实施方式,所述资源信息还可 以包括各个子节点的平台的状态信息和/或各个子节点处理任务请求后的响应信息,并且 在根据配置的加权轮叫调度算法和各种资源信息确定处理该任务请求的子节点之前,S102 步骤还可以包括根据所述状态信息和/或响应信息判断在所述各个子节点中是否存在不 可用的子节点,当判断为否时,继续执行所述根据配置的加权轮叫调度算法和各种资源信 息确定出处理所述任务请求的子节点的步骤,当判断为是时,将所述不可用的子节点删除, 然后执行所述根据配置的加权轮叫调度算法和各种资源信息确定出处理所述任务请求的 子节点的步骤。其中,所述状态信息和响应信息以及判断是否存在不可用的子节点的判断 过程与S102中的实施方式一中的描述相同,此处不再赘述。可选地,可以利用JAVA中的群 组通讯工具JGroup的组管理机制来删除所述不可用的子节点。通过将不可用的子节点删 除,避免了分配错误,提高了加权轮叫调度算法的效率。 由上述可知,本发明通过根据负载均衡策略和集群中的至少两个子节点发送的各
种资源信息确定处理任务请求的子节点来实现系统的负载均衡,可以采用最小资源处理数
算法或者加权轮叫调度算法,无论采用哪种算法都可以根据实际需要实现灵活地配置,在
集群系统中实现合理的资源分配,使系统的处理效率得到最大的提高。 图2是本发明的实现负载均衡的方法的实施例一。如图2所示,该方法包括 S201,负载均衡服务器接收任务请求。该步骤与图1中对SIOI的描述相同,此处
不再赘述。 S202,判断是否需要做负载均衡处理,当判断为否时,执行S203,当判断为是时,执 行S204。具体地,根据所述负载均衡服务器的处理任务请求的处理量来判断,当该负载均衡 服务器的处理量达到或超出第二阈值时,说明该负载均衡服务器不能处理所述接收到的任 务请求,则判断为需要做负载均衡处理,否则判断为不需要做负载均衡处理。其中,所述第 二阈值可以由技术人员根据负载均衡服务器的处理能力进行设置,例如,若该负载均衡服 务器的最大处理能力为每分钟处理60个任务请求,那么为了保证系统的平稳运行,可以设 置第二阈值为每分钟处理50个任务请求,当然,这里只是举例说明,所述第二阈值并不限 于此,技术人员还可以根据实际需要设置第二阈值。
S203,由所述负载均衡服务器处理所述任务请求。 S204,根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任务请求的子节点。该步骤与图1中对S102的描述相同,此处不再赘述。 S205,将所述任务请求发送给确定出的子节点。该步骤与图1中对S103的描述相
同,此处不再赘述。 实现负载均衡的方法的实施例一根据负载均衡服务器的处理量判断是否需要做 负载均衡处理,在负载均衡服务器的处理量达到或超出第二阈值的情形下才做负载均衡处 理,与对所有接收到的任务请求都做负载均衡处理的方法相比,能够减轻集群系统的负担, 加快集群系统的运行速度。 图3是本发明的实现负载均衡的方法的实施例二。如图3所示,该方法包括
S301,负载均衡服务器接收任务请求。该步骤与图1中对SIOI的描述相同,此处 不再赘述。 S302,根据所述任务请求判断该任务请求的目标节点是否是所述负载均衡服务 器,当判断为是时,执行S303,当判断为否时,执行S304。其中,所述任务请求的目标节点是 由所述任务请求的请求报文指出。 S303,由该负载均衡服务器处理所述任务请求。 S304,根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所
述任务请求的子节点。该步骤与图1中对S102的描述相同,此处不再赘述。 S305,将该任务请求发送给确定出的子节点。该步骤与图1中对S103的描述相同,
此处不再赘述。 此外,在本发明的另一种实施方式中,在S301之后,并且在S302之前,本发明的实 现负载均衡的方法的实施例二还可以包括判断是否需要做负载均衡处理,当判断为否时, 由负载均衡服务器处理所述任务请求,当判断为是时,执行所述根据任务请求判断该任务 请求的目标节点是否是负载均衡服务器的步骤。其中,所述判断是否需要做负载均衡处理 的具体判断过程与图2中的S202的描述相同,此处不再赘述。 实现负载均衡的方法的实施例二不仅对是否需要做负载均衡进行判断,还要对接 收到的任务请求的目标节点是否是负载均衡服务器进行判断,不仅实现了负载均衡的目 的,还满足了对特定任务请求的处理需要。 图4是本发明的一种集群系统1的结构示意图。如图4所示,集群系统1包括
负载均衡服务器10以及与该负载均衡服务器10通信的至少两个子节点,包括第
一子节点11、第二子节点12........第N子节点13,其中,N是自然数,技术人员可以根据
实际需要设置集群系统中的子节点的个数。 所述至少两个子节点中的第一子节点11、第二子节点12........第N子节点13
用于按照配置的时间间隔定时分别采集各自的各种资源信息并将这些资源信息发送给负 载均衡服务器10。其中,所述各种资源信息包括线程使用率、CPU使用率、内存使用率、正在 处理的任务请求数量、处理完毕的上一个任务请求的信息、各个子节点的平台的状态信息 等,还可以包括由技术人员根据实际需要以及不同的负载均衡策略所设定的其他信息。此 外,在所述至少两个子节点中,被确定出处理任务请求的子节点还用于在接收到任务请求 后处理该任务请求,并且在处理完成之后将处理该任务请求的响应信息作为所述资源信息 之一发送给负载均衡服务器10。 需要说明的是,如果子节点过于频繁的采集并发送资源信息,则会影响集群系统的性能和稳定性,因此,在实际应用中,通常以秒为单位来配置所述时间间隔。在本发明的
一种实施方式中,可以配置该时间间隔为5秒,在本发明的其他实施方式中,技术人员可以
在满足集群系统的性能和稳定性的基础上根据实际情况灵活地配置该时间间隔。 负载均衡服务器10用于接收任务请求和至少两个子节点分别发送的各种资源信
息,根据负载均衡策略和所述各种资源信息确定处理该任务请求的子节点,并将该任务请
求发送给确定出的子节点,从而实现负载均衡。 需要说明的是,在集群1中,负载均衡服务器和各个子节点并不限于如图4所示的 设置方式,可以在任意的子节点上进行配置使其能够实现负载均衡的方法,则该任意的能 够实现负载均衡的方法的子节点均可作为负载均衡服务器。例如,若设置第一子节点11使 其实现负载均衡的方法,则第一子节点11也可以作为负载均衡服务器,当负载均衡服务器 IO不能正常工作时,则可以设置第一子节点11或其他任意的能够实现负载均衡的方法的 子节点作为新的负载均衡服务器替换负载均衡服务器10。 下面将结合图5-图8详细阐述集群系统1中的负载均衡服务器10的结构和功能。
图5是本发明的集群系统1中的负载均衡服务器10的结构示意图。如图5所示, 该负载均衡服务器10包括 接收模块100,用于接收任务请求和图4中的至少两个子节点分别发送的各种资 源信息。 由于在集群系统中通常对添加类型的任务请求做负载均衡处理,因此,接收模块 100接收到的任务请求指代本地添加任务请求或者远程添加任务请求。另外,为了给集群系 统提供一个接收任务请求的可靠、信赖的通路,本发明实施例优选地采用MINA的点对点的 模式来接收任务请求,当然,也可以采用基于TCP/IP socket通讯方式的其他模式接收。
负载均衡模块101,用于根据负载均衡策略和接收模块100接收到的各种资源信 息确定处理接收模块100接收到的任务请求的子节点。 分配模块102,用于将所述任务请求发送给负载均衡模块101确定出的子节点。
其中,为了给集群系统提供一个发送任务请求的可靠、信赖的通路,本发明实施例 优选地采用MINA的点对点的模式将任务请求发送到确定出的子节点,当然,也可以采用基 于TCP/IP socket通讯方式的其他模式发送。 图6是本发明的负载均衡服务器10中的负载均衡模块101的结构示意图。如图 6所示,负载均衡模块101包括 缓存单元1010,用于存储接收模块100接收到的至少两个子节点分别发送的各种 资源信息。 特别地,根据上文所述,集群中的至少两个子节点按照配置的时间间隔定时分别 采集并发送各种资源信息,那么,每当子节点发送各种资源信息,接收模块100接收到这些 资源信息之后,缓存单元1010就存储这些资源信息并且同时替换掉原有资源信息。
第一确定单元1011,用于根据配置的最小资源处理数算法和缓存单元1010中存 储的各种资源信息确定出处理任务请求的子节点。 第二确定单元1012,用于根据配置的加权轮叫调度算法和缓存单元1010中存储 的各种资源信息确定出处理任务请求的子节点。 此外,在本发明的一种优选实施方式中,负载均衡模块101还可以包括删除单元,定单元1011或者第二确定单元1012确定处理任务请求的子 节点之前,根据缓存单元1010中存储的各种资源信息中的各个子节点的平台的状态信息 和/或各个子节点处理所述任务请求后的响应信息判断是否存在不可用的子节点,当判断 为否时,由第一确定单元1011或者第二确定单元1012进行处理,当判断为是时,将所述不 可用的子节点删除,然后由第一确定单元1011或者第二确定单元1012进行处理。可选地, 利用JAVA中的群组通讯工具JGroup的组管理机制来删除不可用的子节点。通过将不可用 的子节点删除,避免了分配错误,提高了最小资源处理数算法的效率。 图7是本发明的集群系统1中的负载均衡服务器10的实施例一。如图7所示, 负载均衡服务器10包括接收模块100、负载均衡模块101、分配模块102和第一判断模块 103,其中, 接收模块100、负载均衡模块101、分配模块102的功能与在图5中的描述相同,此 处不再赘述。 第一判断模块103,用于实现如下功能 在接收模块100接收任务请求之后,判断是否需要做负载均衡处理,
当判断为否时,由负载均衡服务器10处理所述任务请求,
当判断为是时,由负载均衡模块101处理。 图8是本发明的集群系统1中的负载均衡服务器10的实施例二。如图8所示,负 载均衡服务器10包括接收模块100、负载均衡模块101、分配模块102、第二判断模块104, 其中, 接收模块100、负载均衡模块101、分配模块102的功能与在图5中的描述相同,此 处不再赘述。 第二判断模块104,用于实现如下功能 在接收模块100接收任务请求之后,根据所述任务请求判断该任务请求的目标节 点是否是负载均衡服务器10, 当判断为否时,由负载均衡模块101处理, 当判断为是时,由负载均衡服务器10处理所述任务请求。 图9是本发明的集群系统1中的负载均衡服务器10的实施例三。如图9所示,负 载均衡服务器10包括接收模块100、负载均衡模块101、分配模块102、第三判断模块105, 其中, 接收模块100、负载均衡模块101、分配模块102的功能与在图5中的描述相同,此 处不再赘述。 第三判断模块106,用于实现如下功能 在接收模块100接收任务请求之后,判断是否需要做负载均衡处理,
当判断为否时,由负载均衡服务器10处理所述任务请求, 当判断为是时,根据所述任务请求判断该任务请求的目标节点是否是负载均衡服 务器10, 当判断为不是负载均衡服务器10时,由负载均衡模块101处理, 当判断为是负载均衡服务器10时,由负载均衡服务器10处理所述任务请求。 综上所述,本发明的一种实现负载均衡的方法、负载均衡服务器以及集群系统通
13过根据负载均衡策略和集群中的至少两个子节点分别发送的各种资源信息确定处理任务 请求的子节点,在集群系统中实现合理的资源分配,从而实现系统的负载均衡,具有对原有 数据处理流程的透明性,使集群部署不影响原有系统,并且可以根据需要实现灵活的配置, 能够与平台完全融合,使系统的处理效率得到最大的提高。 通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软 件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明 的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算 机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台 计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实 施例的某些部分所述的方法。 以上所公开的仅为本发明的具体实施方式
,仅用于对本发明进行举例说明,不能 以此限定本发明之保护范围,本领域技术人员在不脱离本发明实质的前提下可以进行各种 修改、变化或替换,因此,依照本发明所作的各种等同变化,仍属于本发明所涵盖的范围。
权利要求
一种实现负载均衡的方法,其特征在于,所述方法包括负载均衡服务器接收任务请求,根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任务请求的子节点,将所述任务请求发送给确定出的子节点。
2. 根据权利要求1所述的方法,其特征在于,所述根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任务请求的子节点包括根据配置的最小资源处理数算法和所述各种资源信息确定出处理所述任务请求的子节点。
3. 根据权利要求2所述的方法,其特征在于,所述根据配置的最小资源处理数算法和各种资源信息确定出处理所述任务请求的子节点包括为所述至少两个子节点中的各个子节点设置节点权值,为所述各种资源信息中的每一种资源信息设置资源值和资源负载权值;对所述各个子节点中的每一个子节点按如下处理得到各个子节点各自的负载值分别对该子节点的每一种资源信息的资源值和资源负载权值做乘积处理得到第一结果值,将各种资源信息的第一结果值相加得到第二结果值,将所述第二结果值与该子节点的节点权值做乘积处理得到该子节点的负载值;根据所述各个子节点的负载值确定出处理所述任务请求的子节点。
4. 根据权利要求3所述的方法,其特征在于,所述根据各个子节点的负载值确定出处理所述任务请求的子节点为根据预先配置的规则,将所述各个子节点中负载值符合该规则的子节点确定为处理所述任务请求的子节点。
5. 根据权利要求3所述的方法,其特征在于,所述资源信息包括线程使用率、CPU使用率、内存使用率、正在处理的任务请求数量和处理完毕的上一个任务请求的信息。
6. 根据权利要求5所述的方法,其特征在于,所述资源信息还包括所述各个子节点的平台的状态信息和/或所述各个子节点处理所述任务请求后的响应信息;在所述根据配置的最小资源处理数算法和各种资源信息确定出处理所述任务请求的子节点之前,所述根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任务请求的子节点还包括根据所述状态信息和/或响应信息判断在所述各个子节点中是否存在不可用的子节点,当判断为否时,继续执行所述根据配置的最小资源处理数算法和各种资源信息确定出处理所述任务请求的子节点的步骤,当判断为是时,将所述不可用的子节点删除,然后执行所述根据配置的最小资源处理数算法和各种资源信息确定出处理所述任务请求的子节点的步骤。
7. 根据权利要求1所述的方法,其特征在于,所述根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任务请求的子节点包括根据配置的加权轮叫调度算法和所述各种资源信息确定出处理所述任务请求的子节点。
8. 根据权利要求7所述的方法,其特征在于,所述根据配置的加权轮叫调度算法和所述各种资源信息确定出处理所述任务请求的子节点包括根据所述各种资源信息为所述至少两个子节点中的各个子节点设置权重值; 根据所述各个子节点的权重值确定出处理所述任务请求的子节点。
9. 根据权利要求7所述的方法,其特征在于,所述资源信息包括 线程使用率、CPU使用率、内存使用率。
10. 根据权利要求9所述的方法,其特征在于,所述资源信息还包括所述各个子节点的平台的状态信息和/或所述各个子节点处理 所述任务请求后的响应信息;在所述根据配置的加权轮叫调度算法和各种资源信息确定出处理所述任务请求的子 节点之前,所述根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所 述任务请求的子节点还包括根据所述状态信息和/或响应信息判断在所述各个子节点中是否存在不可用的子节点,当判断为否时,继续执行所述根据配置的加权轮叫调度算法和各种资源信息确定出处 理所述任务请求的子节点的步骤,当判断为是时,将所述不可用的子节点删除,然后执行所述根据配置的加权轮叫调度 算法和各种资源信息确定出处理所述任务请求的子节点的步骤。
11. 根据权利要求1所述的方法,其特征在于,在所述负载均衡服务器接收任务请求之 后,并且在根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任 务请求的子节点之前,所述方法还包括负载均衡服务器判断是否需要做负载均衡处理, 当判断为否时,由该负载均衡服务器处理所述任务请求,当判断为是时,执行所述根据负载均衡策略和至少两个子节点分别发送的各种资源信 息确定处理所述任务请求的子节点的步骤。
12. 根据权利要求1所述的方法,其特征在于,在所述负载均衡服务器接收任务请求之 后,并且在根据负载均衡策略和至少两个子节点分别发送的各种资源信息确定处理所述任 务请求的子节点之前,所述方法还包括负载均衡服务器根据所述任务请求判断该任务请求的目标节点是否是所述负载均衡 服务器,当判断为是时,由该负载均衡服务器处理所述任务请求,当判断为否时,执行所述根据负载均衡策略和至少两个子节点分别发送的各种资源信 息确定处理所述任务请求的子节点的步骤。
13. 根据权利要求12所述的方法,其特征在于,在所述负载均衡服务器接收任务请求 之后,并且在根据任务请求判断该任务请求的目标节点是否是所述负载均衡服务器之前, 所述方法还包括负载均衡服务器判断是否需要做负载均衡处理,当判断为否时,由该负载均衡服务器处理所述任务请求,当判断为是时,执行所述根据任务请求判断该任务请求的目标节点是否是所述负载均 衡服务器的步骤。
14. 一种负载均衡服务器,其特征在于,所述负载均衡服务器包括 接收模块,用于接收任务请求和至少两个子节点分别发送的各种资源信息; 负载均衡模块,用于根据负载均衡策略和所述各种资源信息确定处理所述任务请求的子节点;分配模块,用于将所述任务请求发送给确定出的子节点。
15. 根据权利要求14所述的负载均衡服务器,其特征在于,所述负载均衡模块包括 缓存单元,用于存储所述接收模块接收到的至少两个子节点分别发送的各种资源信息;第一确定单元,用于根据配置的最小资源处理数算法和所述各种资源信息确定出处理 所述任务请求的子节点;或者第二确定单元,用于根据配置的加权轮叫调度算法和所述各种资源信息确定出处理所 述任务请求的子节点。
16. 根据权利要求15所述的负载均衡服务器,其特征在于,所述负载均衡模块还包括 删除单元,用于实现如下功能根据所述缓存单元中存储的各种资源信息中的各个子节点的平台的状态信息和/或 各个子节点处理所述任务请求后的响应信息判断在所述各个子节点中是否存在不可用的 子节点,当判断为否时,由所述第一确定单元或者所述第二确定单元进行处理, 当判断为是时,将所述不可用的子节点删除,然后由所述第一确定单元或者所述第二 确定单元进行处理。
17. 根据权利要求14所述的负载均衡服务器,其特征在于,所述负载均衡服务器还包括第一判断模块,用于实现如下功能在所述接收模块接收任务请求之后,判断是否需要做负载均衡处理, 当判断为否时,由该负载均衡服务器处理所述任务请求, 当判断为是时,由所述第一确定单元或者所述第二确定单元进行处理。
18. 根据权利要求14所述的负载均衡服务器,其特征在于,所述负载均衡服务器还包括第二判断模块,用于实现如下功能在所述接收模块接收任务请求之后,根据所述任务请求判断该任务请求的目标节点是 否是所述负载均衡服务器,当判断为否时,由所述第一确定单元或者所述第二确定单元进行处理, 当判断为是时,由该负载均衡服务器处理所述任务请求。
19. 根据权利要求14所述的负载均衡服务器,其特征在于,所述负载均衡服务器还包括第三判断模块,用于实现如下功能在所述接收模块接收任务请求之后,判断是否需要做负载均衡处理, 当判断为否时,由该负载均衡服务器处理所述任务请求,当判断为是时,根据所述任务请求判断该任务请求的目标节点是否是所述负载均衡服 务器,当判断为不是所述负载均衡服务器时,由所述第一确定单元或者所述第二确定单元进 行处理,当判断为是所述负载均衡服务器时,由该负载均衡服务器处理所述任务请求。
20. —种集群系统,其特征在于,包括至少两个子节点和如权利要求14至19中任意一项所述的负载均衡服务器;其中,所述至少两个子节点分别采集各自的各种资源信息,并将所述各种资源信息发送给负载均衡服务器,所述负载均衡服务器接收任务请求和所述各种资源信息,根据负载均衡策略和所述各种资源信息确定处理该任务请求的子节点,并将该任务请求发送给确定出的子节点。
全文摘要
本发明公开了一种集群系统,该集群系统包括负载均衡服务器和至少两个子节点,其中,所述至少两个子节点分别采集各自的各种资源信息,并将这些资源信息发送给负载均衡服务器,负载均衡服务器接收任务请求和所述各种资源信息,根据负载均衡策略和所述各种资源信息确定处理该任务请求的子节点,并将该任务请求发送给确定出的子节点。相应地,本发明还公开了一种实现负载均衡的方法和负载均衡服务器。本发明根据负载均衡策略和集群系统中的至少两个子节点分别发送的各种资源信息确定处理任务请求的子节点,在集群系统中实现最合理的资源分配,并且可以根据需要实现灵活的配置,使系统的处理效率得到最大的提高。
文档编号H04L12/56GK101753461SQ20101000226
公开日2010年6月23日 申请日期2010年1月14日 优先权日2010年1月14日
发明者吴炜斯, 张立锋, 施健, 景培培, 杨芬, 顾润喆 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1