高并发性Web应用平台研究与实现

2015-12-07 06:59王欢赵建平姜晓明陈占芳张伟赵巍
关键词:轮询网络拓扑字典

王欢,赵建平,姜晓明,陈占芳,张伟,赵巍

(1.长春理工大学 信息化中心,长春 130022;2.长春理工大学 计算机科学技术学院,长春 130022;3.吉林省教育考试院,长春 130022)

近年来,随着互联网和信息技术的迅速发展,各行各业都在通过信息化手段来提升各自的业务水平,提高各自的办公效率,力争为自己的用户提供更加方便、快捷的服务。基于Web的应用平台具有操作便捷、简单、随时随地办办公的特点,已经成为政府、企事业单位和各类公司提高自己业务水平的载体,广泛地存在于各行各业之中,为社会和经济发展起到了支撑作用,收到广大用户的欢迎。

随着Web应用平台的广泛使用,平台中所支撑的用户人数越来越多,访问的频率也越来越高。如当今流行的电商网站淘宝、京东商城、火车票购票网12306、各类考试招生报名等网站每天都要承担大量的高并发访问。当大量用户集中并发访问这些应用系统时,就会出现应用平台响应过慢,严重的情况下甚至会出现系统崩溃和宕机等情形,影响了应用系统的使用规模和范围。为此Web应用平台的高并发性已经成为了众多应用系统开发的瓶颈,亟待解决。本文针对Web应用系统的问题进行深入研究,分别就平台的整体结构、Web访问应用负载均衡、数据库负载均衡、平台的网络拓扑结构、数据缓存等高并发的关键问题进行研究[1]。

1 总体结构

高并发Web应用平台主要由数据库服务、Web集群、应用负载均衡、管理中间件等部分构成。其中数据库服务也需要进行负载均衡设置。

图1 平台总体结构

通常情况下,平台用户可以分为普通用户和管理用户。普通用户一般情况下在平台中操作较少,不需要打印和统计,只涉及到数据提交;管理用户使用的功能相对较多,包括统计和打印等资源消耗较多的功能。为此普通用户使用网页端进行操作,通过应用负载均衡的策略调度将Web访问分散到Web集群节点上;管理用户采用客户端进行操作,通过客户端对数据进行打印和统计。

2 负载均衡处理

2.1 应用访问负载均衡

为了解决Web平台的高并发访问问题,保证所有用户均能正常访问平台,在应用平台的部署过程中需要进行应用负载均衡考虑。应用负载均衡的策略方式一般包括轮询、权重、ip_hash等。其各自的特点为:

(1)轮询方式:客户端的每个请求按访问时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除,指向下一台服务器。

(2)权重方式:为后端服务器指定轮询几率,权重(weight)和访问比率成正比,用于后端服务器性能不均的情况。

(3)ip_hash方式:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决Session的问题[2]。

Web应用平台的开发过程中,一般都会涉及Session会话的保存问题,故本文采用基于ip_hash的方式进行负载均衡。具体过程如图2所示。

图2 ip_hash策略的执行过程

在ip_hash策略的执行过程中,产生的hash值既与客户端ip有关又与后端机器的数量有关,算法可以连续产生1045个互异的值。在hash过程中,如果经过20次hash仍然找不到可用的机器时,算法退化成轮询,直接对后端服务器进行轮询。

2.2 数据库负载均衡

在应对高并发的数据库访问过程中,数据库需要建立集群系统,来进行负载均衡,这样既可以满足负载均衡的需要,同时也可以防止数据库服务宕机情况的发生。本文采用数据库负载均衡采用基于Oracle数据库的RAC模式进行设计,建立多节点的数据集群,具体结构如图3所示。

每一个节点在本地硬盘安装数据库实例,不存放数据文件,两个节点之间通过心跳线进行连接,互相通讯,并由此进行复杂均衡调度。数据文件则存储在由磁盘阵列构成的共享存储上,每一个节点将处理完毕的结果存放于共享存储上,进而保证节点数据的一致性和稳定性。

图3 数据库负载均衡集群结构

3 数据缓存

3.1 内存缓存字典数据

在web平台中会存在一些字典数据,如性别、名族、政治面貌等。这些字典数据为整个系统高频访问。在高并发的情况,如果每次都对这些数据进行数据库查询,势必会影响整个系统的性能,消耗系统资源。本文采用哈希缓存技术将这些字典数据缓存在内存中,减少数据库的连接操作。

应用平台在第一次启动时,完成数据加载。在缓存过程中,通过字典数据的编码和名称形成键值对,进行哈希散列。关键字的哈希方法为:

value=hash(code,struct_zd)

当发生字典数据变化,管理员需要进行远程数据同步,包括数据库和系统内存两部分。具体同步过程如图4所示。

图4 远程数据字典同步过程

3.2 缓存统计结果

一般的应用系统的对于数据的统计都采用实时性统计。由于在统计的过程中,统计的结构化查询语句与数据库的插入、修改和删除操作会在一定程度上存在交叉,这就会导致数据库死锁的出现。为此本文就高并发访问的统计,提出一种缓存统计结果方案[3]。

方案为通过建立统计服务程序,定时统计结果并进行缓存,用户随时访问缓存的统计结果。具体过程为:

(1)在数据库中建立与统计表格结构相同对的预统计表Y_TJ;

(2)服务定时启动统计数据,并将结果插入到预统计表Y_TJ中,并标记统计进行的时间;

(3)读取预统计表Y_TJ的结果,并将统计响应给用户,并在统计结果中告知统计数据的截止时间;

(4)用户查询统计结果。

4 硬件结构与安全防护

4.1 网络拓扑结构

结合软件的部署和平台性能的发挥,综合考虑平台的性能和稳定性,将Web应用、数据库服务、共享存储和安全审计纳入进平台的拓扑中。平台网络拓扑结构采用双冗余设计,并在关键设备上进行BYPASS设置,当某一个设备出现宕机的情况直接进行数据透传,防止网络断开情况发生。平台的网络结构采用全千兆的光纤网络链路和设备。并在web前端增加网络安全设备,为了提高链路的效率所有设备在接入的过程中均采用旁路监听的模式方式[4]。具体的网络拓扑结构如图5所示。

4.2 安全区域划分

考虑到平台的安全性,在网络拓扑中进行区域划分,包括存储备份区、数据中心区、审计管理区、应用区和网络边界区五部分。同时对区域划分不同的VLAN,从而实现网络间的限制。存储备份区域主要进行数据备份和数据库共享存储。数据中心区主要进行数据库负载系统的部署。审计管理区主要进行安全设备的挂接、对整个网络进行监控。应用区主要存放应用负载均衡和web集群。网络边界区主要与互联网进行交互,并进行抗DDOS攻击等安全防护。

图5 共享数据中心与各应用系统间数据流向

4.3 数据安全

平台中对数据安全性主要包括防止sql注入式破坏和数据完整性两个方面。在注入式攻击方面,与数据的交互过程中避免使用结构化查询语句直接拼凑,而是采用存储过程,进而达到对结构化查询语句关键字注入的过滤。对于数据完整性安全,平台为数据库中的每一条记录进行数据签名,签名的内容包括数据库中的所有字段,具体的签名过程为:key=MD5(column1,column2,…)

然后在每次操作前都对记录数据和签名数据进行匹配和校验,校验通过方可进行操作,否则进行数据纠错,检查数据库日志[5]。

5 结束语

本文设计和实现了一种高并发Web应用平台。讨论了高并发Web应用平台的总体架构和网络拓扑结构,设计了Web应用和数据库负载均衡系统,给出了负载均衡的映射算法,划分了安全区域,并采用字典缓存技术和分时统计技术提高系统性能。该平台已于2014年和2015年成功运用于吉林省高考网上报名工作中,对Web平台的高并发性研究与应用具有一定的现实意义。

[1]王亚楠,吴华瑞,黄锋.高并发Web应用系统的性能优化分析与研究[J].计算机工程与设计,2014,35(8):2976-2980.

[2]张宴.实战Nginx:取代Apache的高性能Web服务器[M].北京:电子工业出版社,2010.

[3]包立辉,黄彦飞.高并发网站的架构研究及解决方案[J].计算机科学,2012,39(10):184-187.

[4]Chen C,Chen G,Jiang DW,et al.Providing scalable database services on the cloud[C].The 11th Int'l Conf.on Web Information Systems Engineering(WISE),Xiamen,2010.

[5]陈占芳,王欢,毕琳,等.基于OA系统的即时通讯平台关键技术研究与实现[J].长春理工大学学报:自然科学版,2012,35(4):125-129.

猜你喜欢
轮询网络拓扑字典
基于通联关系的通信网络拓扑发现方法
字典的由来
基于等概率的ASON业务授权设计∗
能量高效的无线传感器网络拓扑控制
2017款捷豹F-PACE网络拓扑图及图注
大头熊的字典
劳斯莱斯古斯特与魅影网络拓扑图
正版字典
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排