APP下载

基于JSESSION_ID算法的营业web服务器负载均衡方案

2015-03-23马健刘晓霞

科技资讯 2014年34期
关键词:负载均衡

马健 刘晓霞

摘 要:该文研究在运营商营业web服务器的特殊前提下,以负载均衡最优化为需求,以F5负载均摊服务器为研究平台,分析常用的轮循、权重轮循、响应速度、连接数、处理能力五种负载均衡算法在这种特殊需求下的表现,找到实用性较强的处理能力均衡算法。最终打破负载均衡固有思维,在以IP地址为单位的均衡算法之外,提出了以JSESSION_ID为单位的新的负载均衡算法——JSESSION_ID算法。该算法在F5负载均衡服务器性能强大的情况下,表现远远优于任何算法。

关键词:web服务器 负载均衡 处理能力均衡算法 JSESSION_ID算法

中图分类号:TP368 文献标识码:A 文章编号:1672-3791(2014)12(a)-0011-02

目前各电信运营商营业网点的数量星罗棋布,提供的服务越来越多样化。BS架构的web页面登陆方式以其对终端要求低、无需安装维护客户端、操作界面友好,成为主流的营业服务系统基础架构。合理利用web服务器,必须用到负载均衡算法。

1 负载均衡算法在电信运营商营业系统中的意义

负载均衡(LB Load Balance)建立在现有网络结构之上。它提供了一种廉价有效透明的方法,扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

营业web服务一般采用本地负载均衡(Local LB)。这种方案能有效地解决数据流量过大、网络负荷过重的问题,并且即使是服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有服务。

2 五种常用的LB算法在实际应用中的表现与选择

在实际的应用过程中,选择适合的LB算法有利于web服务器合理利用。

2.1 LB算法的基本原则

会话保持策略。即:访问终端在一定时间(可在LB服务器上设定)内再次访问的情况下,会优先于LB算法,将访问终端直接指向上次访问的web服务器。

2.2 营业web服务与网站web的差异

(1)服务器承载内容高度统一。营业web服务承载内容相对稳定,且内容高度一致,多服务器的目的仅是承载大量终端的访问及数据交互。

(2)服务器面向人群相对固定。营业web服务仅允许营业人员通过固定终端进行访问,持续登录,对“会话保持”的要求较高。

(3)数据传输量大且集中。营业web提供的业务受理和查询的功能。每台访问终端在短时间内瞬时产生大量的数据传输和链接请求。

2.3 各LB算法在营业web服务使用中的情况

(1)轮循均衡(Round Robin):将来自网络的请求,从1至N循环分配给服务器组的服务器(N为服务器数量)。RR算法为最基本的均衡算法。

(2)权重轮循均衡(Weighted RR):在RR算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。WRR算法能确保高性能的服务器得到更高的使用率,避免低性能的服务器负载过重。

(3)响应速度均衡(Response Time):LB设备对内部各营业web服务器发出一个探测请求(例如登陆页面检测),根据响应时间来决定服务器响应客户端服务请求的顺序。

(4)最少连接数均衡(Least Connection):该算法根据当前该服务器正在处理的连接数量,把新请求分配给连接数最少的服务器。这种算法以一个瞬时值作为分配标准,显然不是一个好的选择。

(5)处理能力均衡(Predictive Observed):此种均衡算法将把服务请求分配给内部处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成)最轻的服务器。

由于考虑到了内部服务器的处理能力及当前网络运行状况,所以PO算法相对来说更加精确。这种算法是最常用的,也是最有效率的。

3 提出新的LB算法——JSESSION_ID算法。

在实际工作中,我们发现了仅依靠以上五种算法无法完美解决问题。如当web服务器不稳定,发生宕机,重新启动后,根据“会话保持”原则,目前的LB算法较难将负载压力分配到重启后的服务器上来。

3.1 JSESSION_ID算法的提出

根据每个web服务器的终端页面有一个单独的JSESSION_ID,我们尝试使用它作为访问的唯一特征值,取代原来的IP地址,我们称之为“JSESSION_ID算法”,期望可以解决以上问题。同一IP的营业终端发起的链接,每个页面发起链接访问的JSESSION_ID是不同的,因此每个链接可作为独立的访问被分配,也就是说:

(1)同一终端打开的多个页面,有可能被分配到不同web服务器上。而不是集中到同一web服务器上,对一台服务器施加压力。

(2)由于每次新打开页面的JSESSION_ID都是重新生成的,所以不会受到“会话保持”原则的影响,按照目前各web服务器链接数量平均分配链接访问压力,对上面提到的宕机重启的web服务器会在最短时间内分配合适数量的链接,达到负载均衡的目的。

3.2 JSESSION_ID算法代码

在F5负载均衡服务器上试编写算法如下:

when HTTP_REQUEST {

if{[HTTP::cookie exists "JSESSIONID"] }

{#log local0."[HTTP::cookie "JSESSIONID"]"

persist uie [string tolower [HTTP::cookie "JSESSIONID"]] 3600}

else { set jsess

[findstr [string tolower [HTTP::path]] "JSESSIONID=" 11]

if { $jsess != "" } { persist uie $jsess } } }

when HTTP_RESPONSE {

if { [HTTP::cookie exists "JSESSIONID"] }

{ persist add uie [string tolower [HTTP::cookie "JSESSIONID"]] 3600}}

3.3 实验结果及分析

给出三类算法在实际应用中的链接LB效果,见表1。从表1可以看出,JSESSION_ID算法的负载分摊结果非常均衡,达到了理想的效果。

4 结语

在常用的五种LB算法中,处理能力均衡表现是最稳定的。而我们所提出的JSESSION_ID算法在负载均衡服务器性能强大的情况下,其表现远远优于任何算法。

参考文献

[1] 张靖.Web服务器负载均衡研究[J].电子科技大学学报,2004(14):2-3.

[2] 赵成贵.互连网络负载平衡理论与算法[M].北京:科学出版社,2011(5).

[3] tomcat集群与负载均衡.http://blog.chinaunix.net/u/19228/showart_171533.html,2006.endprint

猜你喜欢

负载均衡
LBS检索容灾架构研究
Linux负载均衡集群技术在网络服务器中的应用
Oracle MAA在汽车行业电子政务平台中的应用
社区教育平台运营策略研究
异构环境下改进的LATE调度算法
基于负载均衡的云资源调度策略研究
基于新型VPN 技术的高校校园网改造
基于云计算的虚拟实验系统的设计及应用
基于离散PSO算法的医疗云存储部署策略
多站点同步更新系统的设计