电信级宽带应用网站并发性承载均衡研究
发布时间:2006-10-14 8:05:14   收集提供:gaoqian
张凯 赵刚 金洋 辽宁省通信公司数据通信局


  摘要 当前互联网宽带增值服务成为发展热点,本文从宽带网站Web应用系统的共性出发,通过系统架构设计,软件开发,数据库连接池技术和网络布置等方面的研究,探讨了如何解决Web应用的承载能力问题,并结合辽宁当地网上招考查询平台技术情况,介绍了解决并发访问的经验。

  关键词 B/S Jsp JavaBean组件 数据库连接池 SLB技术

  随着全球信息产业蓬勃发展,计算机宽带网络构成了信息通信的高速公路。有了宽带的支持,企业的生产水平、服务质量及工作效率都得到了提高,使网上应用成为企业7x24小时开放的“网上营业厅”。但同时由于客户访问量不断增长,使后台系统的并发承载能力面临极大的挑战。客户端浏览器

  结合辽宁通信几年来网上招考查询等宽带应用开展的经验和电信级的服务要求,我们从应用系统架构设计,软件开发,数据库连接池技术和网络设备的并发承载等几个方面进行了研究,总结出一套适用于宽带网站应用建设的解决方案。

1 宽带应用架构设计

  应用系统的发展经历了从两层架构到三层(或多层)架构的过程,在应用系统中通常包含三个逻辑组成部分:表达逻辑、事物逻辑、数据存储。目前的三层(或三层以上的)B/S架构通常是以Brower/Web server/DataBase形式为主,这可以将表达逻辑分布在客户浏览器上,数据存储分布在数据库服务器端,而事务逻辑单独作为一层,结合在Web服务器(或其它服务器)中。这样可简化应用发布和维护,更利于软件集群化的分担模式,增加并发处理能力,灵活的完成多主机的分担切换和相互备份作用,实现了并发性保障。

  按照客户表达层、事物逻辑处理层和服务器数据存储层三个方面设计的系统,可根据业务量的多少分配多台主机,可实现客户端的简洁性、系统的逻辑安全性、服务器的负载均衡等特点。辽宁通信在设计网上招考查询平台系统时就是按照以上思路进行的。

2 数据存取的并发效率

  数据库存取访问是WEB应用系统中的重要操作,又相当消耗资源,是制约整个应用系统效率的关键因素之一,这里所说的效率包含两方面:访问效率和连接效率。

  访问效率是指在与数据库进行数据交换时的效率,我们可以从减少数据访问次数,增加数据的共享性等方面使访问效率得以提高;连接效率是指建立数据库连接的效率,在应用程序中频繁地进行数据库连接,是造成数据库访问效率低下的重要原因,解决数据库连接效率问题的思路是:一旦建立数据库连接,就尽可能地保持这个数据库连接,在执行完其它操作后再使用这个连接进行数据库访问;也可以维护一个可重用的连接池,应用系统一启动就建立一些数据库连接,存储到数据库连接池,应用程序可以使用这些连接,任务完成后可以把这些连接放回到连接池,供其它应用使用。

2.1 Java Bean并发与访问效率

  辽宁通信网上招考查询平台使用Java Bean方法实现重载,提高了访问效率。JavaBean(或Bean)是一种具有特定架构的可重用Java组件,Java开发语言中引入用实体Bean组件来处理并发控制问题,基本原理是:其定义了一个抽象级,用来统一所有软件实体,并且允许每个这样的实体变成一个组件。通过允许不同来源的独立代码在处理方式上“看上去相同”,从而使得Bean能够实现在Java领域内部的软件重用。 在多个客户端程序需要同时访问某一个数据时,数据端不直接访问实际的数据存储,而是通过访问对应的实体Bean的实例来进行,这样同一数据可以实现多个客户端同时引用,而在内存中只保留一份实例,避免多客户端检索同一记录时对数据库的重复操作,提高了应用效率。

2.2 数据库连接池

  Java的数据库连接通常利用JDBC(Java Database Connectivity)来做的,JDBC是一个Java扩展API,它为编程者提供了基于SQL查询的数据访问能力。但是,通过JDBC连接访问数据库服务器的能力,对于电信级应用程序还是不够的。引入连接池的目的就是改善依赖于数据库的java服务器代码的性能和并发性,解决三层架构中的中间层与第三层之间的开销。

  池(pooling)本质上是一种资源共享形式。连接池不需要每个用户的请求都经历一个连接操作的开销,因为连接池是预先准备好或按照需要动态创建的,并且该连接池由容器(Web容器或EJB容器)管理,同时被容器中所有元素共享,这样java就不等待数据库连接。如果一个连接可用,那么该连接立刻就处于准备状态。如果没有连接可用,那么将创建一个新连接。这时将会增加由于建立连接所带来的一些开销,但在后来的请求中,就又有一个连接添加到连接池中。在最坏的情况下,就是当到达连接池允许的最大连接数时,正在请求的应用就需要等待正在使用的连接释放并返回到连接池中去。由于大多数数据库交互都是很短的,这个等待时间不会很长。同样,连接池也避免了断开连接所需要的开销,因为连接是一直打开的。

  基于Web的中间件产品较多,它们都可以实现池的作用,在辽宁通信招考查询平台应用中选用WebSphere作为数据库中间件进行数据库连接池管理,提高程序效率,利用其自身的管理机制来监视数据库连接的数量、使用情况等。通常,一个数据库连接池(ConnectionPool)有以下几个基本的属性:

  m_ConnectionPoolSize:连接池中连接数量下限

  m_ConnectionPoolMax:连接池中连接数量上限

  m_ConnectionUseCount:一个连接的最大使用次数

  m_ConnectionTimeout:一个连接的最长空闲时间

  m_MaxConnections:同一时间的最大连接数

  m_timer:定时器

  这些属性定义了连接池与其中连接的有效状态值。连接池的自我管理,实际上就是通过定时的对每个连接的状态、连接的数量进行判断而进行相应操作。

3 SLB网络处理技术

  前面介绍的是在软件开发和数据库连接方面的并发承载技术。在网络硬件方面,以往解决并发性问题主要是采用更强计算能力的服务器来替换,旧的服务器被淘汰掉。而单台服务器的负载能力终归是有限的,不能无限扩展,同时成本投入也很大。近几年提出了SLB(Server Load Balance)服务器承载均衡网络设备解决方案,并日渐成为主流。

  负载分担的主要手段是将用户的接入请求分散给多个服务器,一般支持的网络设备具有四/七层交换功能;我们将负载均衡方法归纳为两大类型:静态和动态两种负载均衡算法,包括:轮询,比率,优先权,最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式等等。在工作时根据服务器的状态采取适当的均衡办法,例如两台Web服务器的CPU利用率分别是25%和50%,则可以按2:1的比例来分配通信量,实现比率(Ratio)负载分担算法的负载均衡,当某个服务器发生故障,SLB就把其从服务器队列中拿出,不参加下一次的用户请求分配,直到其恢复正常。

  辽宁通信网上招考查询平台的SLB网络布置实例是采用哈希算法规则进行处理的,利用Alteon Websystem四层交换机设备做负载分担控制。

配置过程:

(1)指定IP interface,并分配到相应的Vlan中。

#/cfg/ip/if 1

IP Interface 1# addr 10.10.10.8

IP Interface 1# mask 255.255.255.0

IP Interface 1# ena

IP Interface 1# vlan 1

(2)设置缺省网关

#/cfg/ip/gw 1

Default gateway 1# addr 10.10.10.1

Default gateway 1# ena

Default gateway 2# addr 10.10.10.2

Default gateway 2# ena

(3)定义real server

#/cfg/slb/real 1

Real server 1#rip 10.10.10.3

Real server 1#ena

  按照以上方法再分别定义RealServer2、3、4。

(4)定义相应的real server group组,指定SLB算法为Hash规则模式,并增加realserver1、2、3、4到group组中

#/cfg/slb/group 1

Real serve group 1#metric hash

Real serve group 1#add 1 2 3 4

(5)定义相应的virtual server

#/cfg/slb/virt 1

Virtual server 1# vip 10.10.10.7

Virtual server 1# service http

Virtual Server 1 domain Service#group 1

Virtual Server 1 domain Service#../ena

(6)定义相应的健康检查策略

#/cfg/slb/group 1

Real server group 1#health tcp

(7)定义相应的端口信息

#/cfg/slb/port 1

SLB port 1# client ena

SLB port 2# client ena

SLB port 3# server ena

SLB port 4# server ena

SLB port 5# server ena

SLB port 6# server ena

4 结束语

  目前各网络运营商们已开始从单纯组网接入服务向网上宽带增值应用的方向发展,这使得并发性问题在宽带应用中越来越重要。这里推出的这套解决方案,体现了后台服务器集群化承载业务的思路,适合电信级服务质量要求。在辽宁地区经受过130多万人次的高峰期并发访问,总体性能表现稳定。

参 考 文 献

[1] 施伯乐等编著,数据库系统教程,高等教育出版社,1999(2001重印)

[2] 张金涛编著,基于Linux的Apache +Jsp+Oracle,清华大学出版社,2002.3

[3] 王军等译, JSP编程指南,Simon Brown等著,电子工业出版社,2002.10

[4] RonBen-Natan && Ori Sasson著,熊志辉译,IBM Websphere Application Server实用大全,清华大学出版社, 2003年3月

[5] Sun公司,iPlanet Messaging Server Administrator's Guide,www.sun.com网站发布docs.sun. com/source/816-6013-10

[6] 北电公司,ASW80 Application Guide,电子资料手册

[7] F5 Networks公司,Technical&&Application Solutions,f5.coa.cn/adm/upload/UIE.pdf

[8] 王磊等译, Oracle 8/8i 开发使用手册, 机械工业出版社,2000年

张 凯,男,在辽宁省通信公司数据通信局从事数据业务的集成开发工作。

赵 刚,男,在辽宁省通信公司数据通信局工作,主要从事计算机软件开发工作。

金 洋,男,在辽宁省通信公司数据通信局工作,主要从事网络运行维护工作。


----《中国数据通信》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50