一种应用服务器负荷分担系统及其实现方法

文档序号:7916901阅读:180来源:国知局

专利名称::一种应用服务器负荷分担系统及其实现方法
技术领域
:本发明涉及基于软件的应用服务器,特别涉及一种应用服务器负荷分担系统及其实现方法。
背景技术
:随着Internet的迅猛发展,互联网用户数目迅速增加,电信运营商通过互联网提供增值业务也日见普遍。其中许多重要网站的服务,比如彩铃门户和业务运营支撑系统BOSS网上营业厅访问量日益增大,服务器的负荷也随之加重。导致服务器的服务提供方面暴露出诸多问题,比如服务器的服务能力远远不能满足需求,服务器的服务可靠性不能保证,服务响应时间长,延迟大。业界一般做法是将同一种业务分担到不同的服务器上来解决服务器的可扩展性和服务性能要求。常见的有基于硬件实现的负载分担四层交换机和基于软件实现的域名系统轮询调度算法(DNSRoundRobin)。四层交换机可以支持多种负载分担算法,包括最小连接数算法(LeastConnection),该算法优先将流量分发给当前连接数最小的节点服务器);轮询算法(RoundRobin),该算法根据预先设置的权重轮询方式将流量分发到节点服务器等,以及对算法的加权等手段来解决负载分担的合理性,但设备极其昂贵,而基于软件实现的DNSRoundRobin是最简单、最传统的一种实现服务器负载分担的方式,它可以直接安装在一台小型机甚至PC机上,不需要专门为实现负荷分担购买专门的其它的软硬件投资。但是,采取这种方式在其实现的功能和性能上存在很多问题系统的可靠性不能保证,后端节点应用服务器之间的性能可能有差异,对每个请求返回的数据量,会话持续的时间有差异等原因导致DNSRoundRobin负荷分担效果不佳。
发明内容本发明的目的在于,提供一种应用服务器负荷分担系统,能够提高服务器的计算资源,提升服务器的服务可靠性,缩短服务响应时间。本发明的另一目的在于,提供一种应用服务器负荷分担系统的实现方法,能够提高服务器的计算资源,提升服务器的服务可靠性,缩短服务响应时间。本发明的应用服务器负荷分担系统,包括前置HTTP服务器、后端节点应用服务器,进一步包括动态负荷分担器以及后端节点负荷检查器,其中,所述动态负荷分担器,用于接收所述后端节点负荷检查器发送来的物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照所述修改后的负荷分担权重分发到所述后端节点应用服务器;所述前置HTTP服务器,用于在接收浏览器或无线应用协议WAP网关数据后,将所述数据转发到所述动态负荷分担器;所述后端节点负荷检查器,用于定时将相应的后端节点应用服务器的物理参数和/或性能参数消息上报至所述动态负荷分担器。其中,所述节点负荷检查器,设置于相应的所述后端节点应用服务器中,或者独立于所述后端节点应用服务器之外。其中,所述动态负荷分担器通过TCP/IP协议和定向包协议AJP与所述后端节点服务器交互消息。其中,所述预定的负荷动态分担规则,包括节点服务器CPU使用率平均值、或者节点服务器内存使用率平均值、或者节点应用服务器参数上报超时时间、或者轮循算法、或者最小连接算法。本发明的应用服务器负荷分担系统的实现方法,在前置HTTP服务器与后端节点应用服务器之间设置动态负荷分担器和后端节点负荷检查器,并包括下列步骤步骤A:前置HTTP服务器,在接收浏览器或无线应用协议WAP网关数据后,将所述数据转发到所述动态负荷分担器;后端节点负荷检查器,定时将相应的后端节点应用服务器的物理参数和/或性能参数消息上报至所述动态负荷分担器;步骤B:动态负荷分担器接收所述后端节点负荷检查器发送来的物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照所述修改后的负荷分担权重分发到所述后端节点应用服务器。其中,所述节点负荷检查器,设置于相应的所述后端节点应用服务器中,或者独立于所述后端节点应用服务器之外。其中,所述动态负荷分担器通过TCP/IP协议和定向包协议AJP与所述后端节点服务器交互消息。其中,所述预定的负荷动态分担规则,包括节点服务器CPU使用率平均值、或者节点服务器内存使用率平均值、或者节点应用服务器参数上报超时时间、或者轮循算法、或者最小连接算法。其中,在所述节点服务器CPU使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重<formula>formulaseeoriginaldocumentpage7</formula>CPUAVERAGE=(/MiL4M—1+iM/MM—2+…+iMiMM—")/";尸厕M—"/CPUAVERAGE=M;其中,CPUAVERAGE为CPU使用率平均值,E4iL4M—表示第"节点服务器的节点负荷参数;义表示第"节点服务器的权重;M数值为节点服务器的节点负荷参数与CPU使用率平均值的比值。其中,在所述节点服务器内存使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重<formula>formulaseeoriginaldocumentpage7</formula>THRAVERAGE=(iMiMM—1+WiL4M_2+…+WiMM—")/";尸扁M_"/THRAVERAGE=N;其中,THRAVERAGE为平均线程数,/M7MM一w表示第"节点服务器的节点负荷参数;Z"表示第"节点服务器的权重;N数值为节点服务器的节点负荷参数与平均线程数的比值。本发明的有益效果是依照本发明的应用服务器负荷分担系统及其实现方法,采用了根据节点应用服务器的物理性能参数和应用性能参数动态修改负荷分担规则方法,因此能够用配置不同的服务器做群集;并且动态调整负荷控制策略而不影响整体服务性能,达到了尽最大可能利用服务器的计算资源,提升服务器的服务可靠性,缩短服务响应时间的效果。图1为本发明的应用服务器负荷分担系统示意图;图2为本发明的应用服务器负荷分担系统实现方法的流程图;图3为本发明的动态负荷分担处理流程图。具体实施例方式以下,参考附图1~3详细描述本发明的应用服务器负荷分担系统及其实现方法。图l是本发明的应用服务器负荷分担系统示意图,该系统包括动态负荷分担器、前置HTTP服务器、后端节点应用服务器。其中,动态负荷分担器,主要用于通过预先定义的协议接口接收后端节点服务器中的节点负荷检查器发送来的物理参数和性能参数消息,并根据预先定义的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重;并根据负荷分担算法和负荷分担权重将前置HTTP服务器转发来的数据继续分发到后端各个节点应用服务器。其中,前置HTTP服务器包括接收数据模块、数据转发模块和静态网页请求处理模块等。前置HTTP服务器数据接收模块在接收到浏览器或WAP网关数据后,将动态网页请求数据转发到动态负荷分担器,静态网页请求自行处理完成后将结果直接返回给浏览器或无线应用协议(WirelessApplicationProtocol,WAP)网关。其中,节点负荷检查器,用于定时获取本节点的性能参数,将参数上报至动态负荷分担器。另外,节点负荷检查器也可以作为一个单独模块独立于本节点服务器运行。其中,动态负荷分担器通过TCP/IP协议和定向包协议(ApacheJservProtocol,AJP)与后端节点服务器交互消息。其中,TCP/IP协议用于与节点负荷检查器通信,动态负荷分担器作为消息交互的服务端,后端节点服务器作为客户端,消息单向地从后端节点服务器发给动态负荷分担器;AJP协议用于网页内容数据通信,后端节点服务器作为消息交互的服务端,动态负荷分担器作为消息交互的客户端,消息交互双向进行。前置HTTP服务器与浏览器/WAP网关之间通过业界标准的HTTP1.1协议交互消息,前置HTTP服务器作为HTTP通信的服务端,浏览器/WAP网关作为客户端,消息双向交互,对于每一次客户端的请求,服务端均有与此对应的响应消息。其中,在动态负荷分担器预先定义的负荷动态分担规则,包括节点服务器CPU使用率平均值、节点服务器内存使用率平均值、节点应用服务器参数上报超时时间、轮循算法、最小连接算法的选取原则等。其中,表l为负荷分担规则中涉及的参数定义表格。表1<table>tableseeoriginaldocumentpage9</column></row><table>其中,对于负荷分担规则的定义包括两种类型1、基于系统性能参数控制的定义;2、基于应用性能参数控制的定义。另外,如图2所示,为本发明的应用服务器负荷分担系统的实现方法的流程图,该方法包括下列步骤步骤100:在前置HTTP服务器与后端节点应用服务器之间设置动态负荷分担器和后端节点负荷检查器;步骤200:前置HTTP服务器,在接收浏览器或无线应用协议WAP网关数据后,将相关数据转发到所述动态负荷分担器;后端节点负荷检查器,定时将相应的后端节点应用服务器的相关物理参数和/或性能参数消息上报至所述动态负荷分担器;步骤300:动态负荷分担器接收所述后端节点负荷检查器发送来的相关物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照所述修改后的负荷分担权重分发到所述后端节点应用服务器。其中,该预定的负荷动态分担规则,包括节点服务器CPU使用率平均值、节点服务器内存使用率平均值、节点应用服务器参数上报超时时间、轮循算法、最小连接算法。其中,在节点服务器CPU使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重^+Jf2+…+Z"=1iMiMM—1x=/MiMilf_2x义2=…=iM/L4iW_mxX"CPUAVERAGE=(iMiMM—1+/MiL4M—2+…+iMiL4M—w)/w;尸薦M—"/CPUAVERAGE=M;其中,CPUAVERAGE为CPU使用率平均值,MWMj表示第"节点服务器的节点负荷参数;A表示第m节点服务器的权重;M数值为节点服务器的节点负荷参数与CPU使用率平均值的比值。如表2所示的基于系统性能参数控制的负荷分担规则定义表,权重的约束关系如下以2个节点服务器做群集为例,其中,PARAM一A表示节点服务器A节点负荷参数PARAM;PARAM—B表示节点服务器B节点负荷参数PARAM;X表示A节点服务器的权重,Y表示B节点服务器的权重。其中,CPUAVERAGE=(PARAM—A+PARAM—B)/2。例如,当PARAM—A为2.8时,根据PARAM—A/CPUAVERAGE=1.4,可得CPUAVERAGE=2,因此,PARAM—A+PARAM—B=4,PARAM—B=4-2.8=1.2。由此可得,X=0.3、Y=0.7。又如,当PARAM—A为3时,根据PARAM—A/CPUAVERAGE=0.6,可得CPUAVERAGE=5,因此,PARAM—A+PARAM—B=l0,PARAM—B=l0-3=7。由J:匕可4寻,X=0.3、Y=0.7。由jt匕可4寻,X=0.7;Y=0.3。表2<table>tableseeoriginaldocumentpage11</column></row><table>其中,在节点服务器内存使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重THRAVERAGE=(/MiL4M—1+iMi^4M—2+…+iM/L4M—")/";尸厕M_"/THRAVERAGE=N;其中,THRAVERAGE为平均线程数,/M/MM一"表示第"节点服务器的节点负荷参数;A表示第"节点服务器的权重;N数值为节点服务器的节点负荷参数与平均线程数的比值。如表3所示的基于应用性能参数控制的负荷分担规则定义表,权重调整规则和约束关系与基于系统性能参数控制相同,权重的约束关系如下表3<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>如图3所示,为本发明的动态负荷分担处理流程图。节点负荷检查器依照上述规则定义的参数上报时间间隔定时向负荷分担器发送本节点参数信息。动态负荷分担器根据上述示例的规则修改负荷分担控制表1、如果节点服务器的CPU使用率等于平均CPU使用率CPUAVERAGE,则不修改负荷分担控制表的该节点服务器的负荷权重,如果超过CPUAVERAGE40%,表明该节点应用服务器系统繁忙,则降低该服务器的承担负荷权重为初始值的60%;反之如果节点服务器的CPU使用率低于规则参数CPUAVERAGE40%,则增加该节点服务器承担负荷权重为初始值的140%。2、如果节点服务器的线程数低于节点应用服务器平均线程THREADAVERAGE30%,表明该节点应用服务器负荷较轻,则加大该节点的承担负荷权重为初始值的130%;反之如果节点服务器线程数高于THREADAVERAGE30%,表明该节点应用服务器负荷较重,则降低该节点服务器的承担负荷权重为初始值的70%。3、如果节点服务器的CPU颗数,主频和物理内存资源超过所有节点平均值50%,则加大该节点的承担负荷权重为初始值的150°/。。4、如果节点应用服务器上报时间超过TIMEOUT,则直接将该节点从群集中移出。最后,负荷分担器在接收来自前置HTTP转发的动态网页请求数据后,读取负荷分担控制表,根据不同权重将数据分发至各后端应用服务器节点。综上所述,依照本发明的应用服务器负荷分担系统及其实现方法,采用了根据节点应用服务器的物理性能参数和应用性能参数动态修改负荷分担规则方法,因此能够用配置不同的服务器做群集;并且动态调整负荷控制策略而不影响整体服务性能,达到了尽最大可能利用服务器的计算资源,提升服务器的服务可靠性,缩短服务响应时间的效果。以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。权利要求1.一种应用服务器负荷分担系统,包括前置HTTP服务器、后端节点应用服务器,其特征在于,进一步包括动态负荷分担器以及后端节点负荷检查器,其中,所述动态负荷分担器,用于接收所述后端节点负荷检查器发送来的物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照所述修改后的负荷分担权重分发到所述后端节点应用服务器;所述前置HTTP服务器,用于在接收浏览器或无线应用协议WAP网关数据后,将所述数据转发到所述动态负荷分担器;所述后端节点负荷检查器,用于定时将相应的后端节点应用服务器的物理参数和/或性能参数消息上报至所述动态负荷分担器。2.如权利要求1所述的应用服务器负荷分担系统,其特征在于,所述节点负荷检查器,设置于相应的所述后端节点应用服务器中,或者独立于所述后端节点应用服务器之外。3.如权利要求1或2所述的应用服务器负荷分担系统,其特征在于,所述动态负荷分担器通过TCP/IP协议和定向包协议AJP与所述后端节点服务器交互消息。4.如权利要求1或2所述的应用服务器负荷分担系统,其特征在于,所述预定的负荷动态分担规则,包括节点服务器CPU使用率平均值、或者节点服务器内存使用率平均值、或者节点应用服务器参数上报超时时间、或者轮循算法、或者最小连接算法。5.—种应用服务器负荷分担系统的实现方法,其特征在于,在前置HTTP服务器与后端节点应用服务器之间设置动态负荷分担器和后端节点负荷检查器,并包括下列步骤步骤A:前置HTTP服务器,在接收浏览器或无线应用协议WAP网关数据后,将所述数据转发到所述动态负荷分担器;后端节点负荷检查器,定时将相应的后端节点应用服务器的物理参数和/或性能参数消息上报至所述动态负荷分担器;步骤B:动态负荷分担器接收所述后端节点负荷检查器发送来的物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照所述修改后的负荷分担权重分发到所述后端节点应用服务器。6.如权利要求5所述的应用服务器负荷分担系统的实现方法,其特征在于,所述节点负荷检查器,设置于相应的所述后端节点应用服务器中。7.如权利要求5或6所述的应用服务器负荷分担系统的实现方法,其特征在于,所述动态负荷分担器通过TCP/IP协议和定向包协议AJP与所述后端节点服务器交互消息。8.如权利要求5或6所述的应用服务器负荷分担系统的实现方法,其特征在于,所述预定的负荷动态分担规则,包括节点服务器CPU使用率平均值、或者节点服务器内存使用率平均值、或者节点应用服务器参数上报超时时间、或者轮循算法、或者最小连接算法。9.如权利要求8所述的应用服务器负荷分担系统的实现方法,其特征在于,在所述节点服务器CPU使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重CPUAVERAGE=(/MiMM_1+/MiL4A/_2+…+/Mi^M_")/";尸掘M—"/CPUAVERAGE=M;其中,CPUAVERAGE为CPU使用率平均值,/MiL4M—"表示第"节点服务器的节点负荷参数;^表示第"节点服务器的权重;M为节点服务器的节点负荷参数与CPU使用率平均值的比值。10.如权利要求8所述的应用服务器负荷分担系统的实现方法,其特征在于,在所述节点服务器内存使用率平均值分担规则中,依照如下公式进行动态修改负荷分担权重<formula>formulaseeoriginaldocumentpage4</formula>THRAVERAGE=(il4iL4M—1+7M/L4M—2+…+尸JiMM—")/";尸掘M_"/THRAVERAGE=N;其中,THRAVERAGE为平均线程数,w表示第w节点服务器的节点负荷参数;X"表示第"节点服务器的权重;N数值为节点服务器的节点负荷参数与平均线程数的比值。全文摘要本发明提供一种应用服务器负荷分担系统及其实现方法,其中,该方法在前置HTTP服务器与后端节点应用服务器之间设置动态负荷分担器和后端节点负荷检查器,动态负荷分担器接收后端节点负荷检查器发送来的相应的后端节点应用服务器的物理参数和/或性能参数消息,并根据预定的负荷动态分担规则动态选择负荷分担算法并修改负荷分担权重,将前置HTTP服务器转发来的数据依照修改后的负荷分担权重分发到所述后端节点应用服务器。本发明能够提高服务器的计算资源使用率,提升服务器的服务可靠性,缩短服务响应时间。文档编号H04L12/56GK101309226SQ20081013179公开日2008年11月19日申请日期2008年6月30日优先权日2008年6月30日发明者何君臣申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1