基于高可用性负载均衡的Web票务平台研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0引言
随着电子商务和电子政务的开展,网络访问量和交易量明显增加。人们日常的各种商业活动和参政行为都在往网上迁移,在这种情况下,势必会产生大量并发访问的情况,因此要求网络中心服务器必须具备提供大量并发访问服务的能力。这样,网络中心服务器的处理能力和I/O 能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。
在Web 票务平台中采用集群系统(Cluster ),能够满足新的需求对平台提出的高可用性、高性能和高可扩展性[1]的要求。目前已经在应用的集群系统都已经可以提供高可用性的、高可扩展性的服务,例如Windows 平台下Microsoft Cluster Ser-ver ,Unix 平台下面的Trucluster ,Linux 平台下的Lsf ,TurboClus-ter ,LVS 等。但是在这些系统提供的接口上开发和部署Web 票务平台比较困难,同时也不能很好的处理不同平台之间的兼容性问题,并且需要硬件的支持。此外对于一些特定应用,软件的配置复杂,对系统管理员的素质要求也比较高。针对遇上的这些问题,本文将介绍一种基于改进蚁群算法的高可用性负载均衡的Web 票务平台的体系结构及设计。采用集群
系统的设计思想,设计一种为客户提供高可用性负载均衡的网上票务服务的Web 票务平台。新平台几乎不依赖操作系统和硬件,具有很好的可扩展性和可维护性,既可以通过低成本的服务器提供较高的性能,同时也能扩展为类似奥运票务这样大型的票务活动所应用。此外,对负载均衡算法的改进算法进行研究,提出了一种与混合遗传算法相融合的基于基本蚁群算法的混合算法,对传统的蚁群算法因为过早收敛而容易陷入局部最优解的局限进行了有效地改善,实现了集群系统的动态负载均衡。
1Web 票务平台的系统架构设计
Web 票务平台的整体结构采用的是基于集群系统的设计思想,它具有较高的容错性、可扩展性和可维护性,能够摆脱对操作系统和硬件的依赖。整个网络订票平台由票务服务节点和客户节点组成,而票务服务节点影响着整个平台的性能,其设计目标主要有:
(1)高可用性:系统能提供不间断的服务。通过心跳检测等技术发现任意一个活动节点出现故障时,都能够将服务在非常短的时间内自动切换到备用服务节点,这一过程对于外界是透明的。此外,针对不同的票务服务,采用了不同的备份
收稿日期:2008-12-21;修订日期:2009-09-24。
网络与通信技术
方式,在保证高可用性的同时也考虑到了成本问题;
(2)高可扩展性:根据不断增长的需求对性能的要求,系统可以方便地通过增加票务服务节点来满足;同时能够根据随时变化的需求,通过适时、适当减少票务服务节点来降低成本。对票务服务节点的增加和减少过程,不用中断平台的正常使用;
(3)负载均衡:用于Web服务器、应用服务器等,而不用于数据库服务器。多台服务器为对称方式,每台服务器都具有同等的地位,可以单独对外提供服务而无须其它服务器的辅助。通过负载分担技术,将外部发送来的请求按一定规则分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求,从而提高整个票务平台的效率,达到降低成本的目的。
Web票务平台按提供服务及需求的不同采用了不同的设计方式,将整个系统分为了4个不同子系统(如图l所示):
(1)Web服务器集群:对外负责顾客网上订单的跟踪、项目信息查询,对内负责连接后端的应用服务器;
(2)票务服务器集群:在每次接收到Web服务器提交的订单信息时,票务处理服务器首先访问订座服务器进行预处理,预订座成功后,才会修改数据库中的实际座位状态;
(3)订座服务器集群:负责维护指定的一组项目的订座状态,包括:各票类剩余座位数目,坐席状态等;
(4)底层数据库:采用OLTP(联机事务处理)和OLAP(联机分析处理)分置的方式,包括汇总OLAP数据库、用户信息数据库和场馆服务器。
Web服务器集群、票务服务器集群和订票预处理服务器集群都采用了负载均衡技术,集群内的每个节点对客户都是透明的,客户感觉不到服务器集群,他们访问整个Web服务器集群时,是通过访问同一个IP地址实现的,在用户面前服务器集群好像一台网络服务器。
在底层数据库中,将数据库按照处理票务信息内容的不同分成了不同的组,每组内都有多个节点。对于汇总数据库和用户信息数据库采用了双机备份,多个服务器共同执行同一任务,但是服务器数据包括数据库数据同时往两台或多台服务器写。当活动服务器节点出现故障的时候,通过心跳诊断将备用服务器节点激活,保证应用在短时间内完全恢复正常使用。而场馆服务器采用双机互备的方法,在双机热备的基础上,多个相对独立的应用在不同服务器上同时运行,但彼此均设为备机,组内各点状态没有主次之分。当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。
2相关技术
2.1负载均衡算法
目前,人们已提出很多的负载均衡调度算法,用于实现网络服务器集群系统的负载均衡。基本上可将这些算法分为两大类:①静态负载均衡算法,是指算法在进行负载均衡时,不需要知道集群中当前各节点的负载状态,如轮询算法、加权轮询算法、随机法、加权随机法、最小连接数、加权最小连接数、哈希散列算法等。②动态负载均衡算法,是指算法在进行负载均衡前,需要获取集群中各服务器的当前负载状态并将其作为负载均衡的依据,如SWP算法等。本文借鉴蚁群算法和混合遗传算法的思想,研究了一种混合智能动态负载均衡算法,见后文。
2.2高可用性集群
实现负载均衡一方面是为了尽可能的提高服务器的使用效率,降低成本;另一方面也能够最大可能地减少服务中断时间,保证系统的连续运行能力,从而提高网络的高可用性。高可用性集群系统是由集群软件监控、具有多台服务器互相冗余的系统。通过集群软件提供的故障监测、故障屏蔽和故障转移功能,可保证业务连续性的能力。故障监测是通过“心跳”检测等方式实现的,只有在发现故障的基础上才能完成故障屏蔽和转移功能;故障屏蔽就是在对用户透明的前提下,丢弃发现的产生故障的节点;故障转移可以避免单点故障对整个应用服务的影响,保证服务的连续与可靠性。三者一起保证了系统的高可用性,但是系统的高可用性并不等同于容错,容错仅仅是设计高可用性系统的一方面,并不能说明恢复系统错误的时间。
2.3集群负载均衡改进算法及其实现
2.3.1蚁群优化算法简介
蚁群优化算法(ant colony algorithm)是由意大利学者Dorigo等人于20世纪90年代初期,通过模拟自然界中蚂蚁群体在寻找食物过程中的寻径行为,而提出的一种基于种群的启发式仿生模拟进化系统。蚁群算法可以分为以下两个基本阶段:适应阶段和协作阶段。在适应阶段,各待选解根据积累的信息素来不断调整自身结构。在协作阶段,待选解之间通