一种用于web应用服务器群组的负载均衡方法和装置的制作方法

文档序号:7555331阅读:137来源:国知局
专利名称:一种用于web应用服务器群组的负载均衡方法和装置的制作方法
技术领域
本发明涉及计算机网络领域,尤其涉及一种用于WEB应用服务器群组的负载均衡方法和装置。
背景技术
由于目前现有计算机网络的各个核心网络部分随着待处理的数据业务量的提升,访问量和数据流量的快速增长,对计算机网络设备的处理能力和计算强度要求也相应地提高,这使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有计算机设备去做大量纯粹的硬件升级,必将造成现有计算机设备资源的严重浪费,而且如果再面临下一次数据业务量的提升时,这又将需要再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前数据业务量增长的需求。然而,负载均衡建立在现有计算机网络架构之上,它提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡通过多台应用服务器以对称的方式组成一个应用服务器集合,该应用服务器集合中的每台应用服务器具有等价的地位,对于客户端而言,每台应用服务器可以独立地响应来自客户端的请求,都可以单独对外提供服务而无需其他应用服务器的辅助。来自客户端的请求首先到达用于进行负载均衡的服务器,用于进行负载均衡的服务器采用负载均衡算法将请求分配给WEB应用服务器群组中的某一台应用服务器,然后该应用服务器响应客户端的请求,这是加入负载均衡后的WEB访问流程。目前常用的负载均衡算法,是通过计算WEB应用服务器群组中WEB应用的连接数,将来自客户端的请求发送给WEB应用连接数最小的WEB应用服务器。这种最小连接数均衡算法,由于只考虑到各个WEB应用服务器的当前连接数,并没有考虑各应用服务器之间的差异,导致负载往往达不到真正意义上的均衡,也就是说,无法实现性能较优的负载均衡。特别是在应用服务器主机资源使用率很高,而连接数很低的情形下,容易导致网络响应速度变慢,甚至服务器宕机等问题。

发明内容
本发明提供了一种用于WEB应用服务器群组的负载均衡方法,该负载均衡方法利用应用服务器的当前WEB应用和应用服务器本身硬件资源两方面的性能指标,得到两方面服务状态均较优的应用服务器,从而将该服务状态较优的应用服务器作为接收客户端请求的服务器,可以达到性能较优的负载均衡,特别是较好地解决了应用服务器主机资源使用率很高而连接数很低情形下进行负载均衡,导致的网络响应速度变慢、甚至服务器宕机的问题。根据本发明的第一方面,提供了一种用于WEB应用服务器群组的负载均衡方法,包括:获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标;根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。根据本发明的第二方面,提供了一种用于WEB应用服务器群组的负载均衡装置,包括:获取模块,用于获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标;确定模块,用于根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。实施本发明提供的用于WEB应用服务器群组的负载均衡方法和装置,在负载均衡中通过综合考虑应用服务器群组中各应用服务器的硬件性能指标和WEB应用的性能指标,与现有的最小连接数均衡法相比,可实现更优的负载均衡性能,并且可有效地缓解应用服务器主机硬件资源使用率很高而连接数很低时进行负载均衡所导致的网络响应速度变慢、甚至服务器宕机的问题。


图1图示了根据本发明实施方式的用于WEB应用服务器群组的负载均衡方法的流程图。图2图示了根据本发明实施方式的用于WEB应用服务器群组的负载均衡装置。
具体实施例方式为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。参见图1,图示了根据本发明实施方式的用于WEB应用服务器群组的负载均衡方法的流程图,该方法具体可包括如下步骤:S101,获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标;S102,根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。本发明的实施方式中,用于进行负载均衡的服务器是采用各种分配算法把来自WEB客户端的服务请求分散到WEB应用服务器群组中可用的应用服务器的一种服务器。用于进行负载均衡的服务器通过管理进入WEB应用服务器群组的各应用服务器的数据流量和增加有效的网络带宽,来降低网络中WEB应用服务器对来自客户端的服务请求的平均响应时间,从而提高WEB应用服务器系统的响应性能。本发明实施方式中的用于进行负载均衡的服务器可以是PC机,也可以是交换机(集成了负载均衡器,即具有负载均衡功能的交换机)。用于进行负载均衡的服务器与WEB应用服务器之间通信在WEB客户端的WEB服务请求发送过程中采用超文本传输协议(Hyper text transfer protocol, HTTP),也就是说,来自WEB客户端的服务请求是以HTTP请求的形式向负载均衡服务器发送,然后负载均衡服务器根据负载均衡算法将这些HTTP请求形式的服务请求转发给应用服务器系统中可用的应用服务器,接收转发的WEB应用服务器响应服务请求,根据这些服务请求做出相应的业务处理后,向客户端返回这些服务请求所需要的资源。用于进行负载均衡的服务器在对WEB应用服务器群组进行负载均衡时,获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标。其中,每台应用服务器的硬件性能指标、和WEB应用的性能指标的获取可以通过在各应用服务器上部署监控模块来实现,例如该监控模块可以通过C语言实现,上述性能指标数据的采集可以实时采集。对于各台应用服务器的硬件性能指标,可以包括应用服务器的主机的CPU使用率、内存使用率。其中各应用服务器上设置有提供CPU使用率和内存使用率的接口,监控模块可以通过调用上述接口来采集CPU使用率和内存使用率数据。各应用服务器的监控模块还可以获取WEB应用的JVM内存使用率、WEB应用的当前连接数和最大连接数的比值。本发明实施方式中的应用服务器和WEB应用的部署关系,例如可以在26台WEB应用服务器上部署32个WEB应用,通常每天的WEB访问量在2000万左右,但在某些特殊的场景下(例如,瞬时访问量剧增),I秒钟的WEB访问量可以达到上百万。本发明的实施方式的WEB应用服务器Weblogic是基于JAVA EE架构,在其他配置条件一定的情形下,JVM (java虚拟机)的内存使用率越高,Weblogic的性能越低。WEB应用的最大连接数可以由应用服务器系统管理员进行设置,最大连接数的设置可以根据WEB应用所在应用服务器的各硬件性能、数据库性能、以及分配给WEB应用相应的资源等参数进行设置。其中,用于进行负载均衡的服务器与WEB应用服务器之间的上述硬件性能指标和WEB应用的性能指标的传输采用简单网络管理协议(Simple Network Management Protocol, SNMP)进行。所述采集的各应用服务器的硬件性能指标和WEB应用的性能指标保存在负载均衡服务器的内存中,采集的上述数据在存入内存后,会覆盖前次采集的数据,以尽量避免采集的上述指标数据重复占用内存空间,影响负载均衡服务器数据处理效率。本发明的实施方式中,根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器,具体而言,可以包括下述步骤:轮询所述应用服务器群组中每台应用服务器上部署的监控模块,判断各台应用服务器的CPU使用率是否超过CPU阈值,在各应用服务器的服务状态表中将超过CPU阈值的应用服务器的服务状态设置为不可转发,将未超过CPU阈值的应用服务器的服务状态设置为可转发,其中,服务状态为可转发状态,表示可以作为接收客户端服务请求的候选应用服务器,服务状态为不可转发状态,表示不能作为接收客户端服务请求的候选应用服务器,将应用服务器的服务状态设置为不可转发,可以视为将这些应用服务器排除在可接收服务请求的应用服务器之外。对应用服务器群组中各应用服务器监控模块的轮询可以采用定时轮询的形式,例如,可以每隔0.2S(秒)向各应用服务器的监控模块发送请求。各应用服务器的服务状态表可以采用二维数组的形式实现,保存在负载均衡服务器的内存中,例如可以是服务状态表可以是如下表I的形式:表I
权利要求
1.一种用于WEB应用服务器群组的负载均衡方法,其特征在于,包括: 获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标; 根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。
2.根据权利要求1所述的方法,其特征在于,还包括: 在所述应用服务器群组中的每台应用服务器上部署C语言实现的监控模块,用于采集本台应用服务器的硬件性能指标和WEB应用的性能指标。
3.根据权利要求2所述的方法,其特征在于,所述硬件性能指标包括:本台应用服务器的CPU使用率、内存使用率。
4.根据权利要求3所述的方法,其特征在于,所述WEB应用的性能指标包括:WEB应用的JVM内存使用率、WEB应用的当前连接数和最大连接数的比值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器包括: 轮询所述应用服务器群组中每台应用服务器上部署的监控模块,判断各台应用服务器的CPU使用率是否超过CPU阈值,在各应用服务器的服务状态表中将超过CPU阈值的应用服务器的服务状态设置为不可转发,将未超过CPU阈值的应用服务器的服务状态设置为可转发; 轮询所述更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的内存使用率是否超过内存阈值,在所述更新后的服务状态表中将超过内存阈值的应用服务器的服务状态设置为不可转发,将未超过内存阈值的应用服务器的服务状态设置为可转发; 轮询所述进一步更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的WEB应用的JVM内存使用率是否超过JVM阈值,在所述进一步更新后的服务状态表中将超过JVM阈值的应用服务器的服务状态设置为不可转发,将未超过JVM阈值的应用服务器的服务状态设置为可转发; 轮询所述再次更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的WEB应用的当前连接数和最大连接数的比值,将所述比值最小的应用服务器确定为接收来自客户端的请求的应用服务器。
6.一种用于WEB应用服务器群组的负载均衡装置,其特征在于,包括: 获取模块,用于获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标; 确定模块,用于根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。
7.根据权利要求6所述的装置,其特征在于,还包括: 监控模块,设置于所述应用服务器群组中的每台应用服务器上,通过C语言实现,用于采集本台应用服务器的硬件性能指标和WEB应用的性能指标。
8.根据权利要求7所述的装置,其特征在于,所述硬件性能指标包括:本台应用服务器的CPU使用率、内存使用率。
9.根据权利要求8所述的装置,其特征在于,所述WEB应用的性能指标包括:WEB应用的JVM内存使用率、WEB应用的当前连接数和最大连接数的比值。
10.根据权利要求9所述的装置,其特征在于,所述确定模块包括: 第一处理单元,用于轮询所述应用服务器群组中每台应用服务器上部署的监控模块,判断各台应用服务器的CPU使用率是否超过CPU阈值,在各应用服务器的服务状态表中将超过CPU阈值的应用服务器的服务状态设置为不可转发,将未超过CPU阈值的应用服务器的服务状态设置为可转发; 第二处理单元,用于轮询所述更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的内存使用率是否超过内存阈值,在所述更新后的服务状态表中将超过内存阈值的应用服务器的服务状态设置为不可转发,将未超过内存阈值的应用服务器的服务状态设置为可转发; 第三处理单元,用于轮询所述进一步更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的WEB应用的JVM内存使用率是否超过JVM阈值,在所述进一步更新后的服务状态表中将超过JVM阈值的应用服务器的服务状态设置为不可转发,将未超过JVM阈值的应用服务器的服务状态设置为可转发; 第四处理单元,用于轮询所述再次更新后的服务状态表中为可转发状态的应用服务器的监控模块,判断各应用服务器的WEB应用的当前连接数和最大连接数的比值,将所述比值最小的应用服务器确定为接收来自客户端的请求的应用服务器。
全文摘要
本发明提供了一种用于WEB应用服务器群组的负载均衡方法,包括获取应用服务器群组中每台应用服务器的硬件性能指标、以及WEB应用的性能指标,根据所述硬件性能指标和所述WEB应用的性能指标确定接收来自客户端的请求的应用服务器。本发明还提供了相应的装置。实施本发明提供的方法和装置,可以达到较优的负载均衡,特别是较好地解决了应用服务器主机资源使用率很高而连接数很低时进行负载均衡,导致的网络响应速度变慢、甚至服务器宕机的问题。
文档编号H04L29/08GK103179217SQ20131013700
公开日2013年6月26日 申请日期2013年4月19日 优先权日2013年4月19日
发明者周振, 陈林, 王伟, 包辰明, 廖继逢, 吴炎冰, 智锦, 张辉, 李彦琳 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1