招生网站不惧海量访问

2010-11-09 06:42任军
中国教育网络 2010年6期
关键词:访问量IP地址链路

文/任军

招生网站不惧海量访问

文/任军

高考的到来使6、7月人们对招生网站的关注程度达到沸点。网络管理人员必须部署一个架构合理、运行良好的招生网站,否则难以承受成千上万的并发访问。因此,为确保在大并发访问情况下网站对外服务的高可用性和高稳定性,就要摆脱一般网站的部署思路,需要从系统架构的角度对网站进行全方位审视和设计。

挑战井喷式并发访问

随着计算机网络技术的发展和应用以及网络在家庭和社会的普及,我国基于广域网Web的招 生考试类业务已经逐步开展起来。

包含各项Web应用的招考类站点具有如下特点:一是网站日常部署规模相对较小。二是网站全年不同时间段访问量变化巨大,在日常情况下,访问量普遍较小,而在某项业务开展季节,网站的访问量可能会井喷式的急剧增长,比如2009年,河北省教育考试院网站日常访问量基本维持在3~5万点击量水平,在普通高考成绩查询服务开通的最初两个小时内,访问量猛增到310万,查询次数达到190万人次。三是,因为相关业务涉及考生家长的切身利益,整个业务流程的各个环节在时间上前后关联,因此对所提供Web服务的可用性和稳定性提出了很高的要求。

从网络系统整体架构的设计和部署角度考虑,如何最大限度的确保网站的可用性和稳定性是我们试图解决的问题。

三大主要性能瓶颈

1.在链路方面,多ISP环境下用户与网站的互联互通问题

目前,我国各网络运营商之间的互联互通存在比较严重的问题,具体表现在同一个ISP的范围内,网站的访问很流畅,当试图去访问于另一个ISP范围内的网站资源时,访问质量就急速下降,甚至无法访问。招考类网站服务对象为各类考生,考生类别的多样性和上网地点的不确定性决定了用户终端接入的ISP多种多样。因此,如何确保用户与网站的顺畅联通,是招考类网站首先需要解决的问题。

2.在服务器系统方面负载能力的可扩展问题

在网络访问量持续增大或井喷式增长的情况下,单一服务器根本无法承担访问负载,如何确保服务器数量根据访问负载灵活、有效、透明的扩展,以增加服务器吞吐量和网络数据处理能力,减少用户等待响应时间,也是应对大并发访问要解决的一个基本问题。

3.在高并发环境下进一步提升服务器的有效负载的问题

在解决多ISP互联互通问题以及基本的服务器扩展问题之后,我们发现访问量的持续增加,服务器负载不断加重,导致在高峰时需要上线的服务器数量非常庞大,除了带来巨额的硬件成本投入外,对服务群的管理性也带来了巨大挑战, 很难确保对每一台服务器进行有效管理,因此,整个应用系统的可用性大大降低。因此,如何采取各种措施,进一步优化网络和应用性能,增强服务器有效负载能力,在最大限度减少服务器部署台数的基础上,增加服务器的可管理性,大幅提升应用性能是最终能否使应用系统可用和稳定的关键步骤。

在大并发访问环境下招生考试类Web网站的设计与部署主要围绕解决以上三个主要技术问题展开。同时考虑到网站特点(静态、动态)、访问规模和成本预算控制等因素,在下面内容中给出了免费软件自行配置和专用产品部署两种解决方案。以便根据实际情况有选择的参考实施。

图1 三个出口的智能部署示意

图2 基于NAT的负载均衡器的基本实现原理

攻关瓶颈的方法

多链路环境下带宽的有效利用问题

针对ISP间的互联互通问题,首先,选择尽量多的ISP链路以应对考生接入方式的多样性,如河北省考试院为配合网站建设接入了目前国内三个主要的ISP链路,中国联通、中国电信和教育网;在此基础上,解决多链路互联互通问题,即实现用户与网站的数据交换都在与用户相同的ISP网络里进行,即若用户连入的是联通网络,则用户与网站的数据交换都通过联通链路进行。

解决这一问题,从根本上,目前普遍采用的是智能域名解析技术。它是针对一个固定域名对应多个固定IP地址而提出的,该技术的核心是让DNS服务器在响应域名查询请求之前,根据用户端源IP地址所处的ISP(通过IP地址范围确定)的不同,智能地返回不同的解析结果给对应的客户端。例如当分别位于教育网、中国联通和中国电信的用户访问同一个域名时,DNS服务器会对每一个用户的源IP地址进行智能对比分析,并根据分析结果返回所在的ISP的IP地址。以在用户和服务器之间建立最短、最优的路径。

1.基本功能实现

在具体实现上,采用软硬件方式,最基本功能我们可以采用BIND 9.x的VIEW字句自行配置实现。

为更好理解该技术的工作原理,下面以三个ISP出口链路为例,简要介绍一下主要配置。总的来说,就是通过VIEW与ACL协同工作,以实现根据用户源IP地址智能解析对应服务器的IP地址。具体说,因一个域名指向三个不同的网域,因此首先需要在named.conf文件中通过ACL定义三个不同的ISP地址列表,即VIEW分别指到用一个域名的三个不同网域,之后当处于不同VIEW中的用户访问这个域名时,将被引导到对应的解析文件中,每个解析文件定义了该网域对应的服务器的IP地址,最后通过BIND将该地址作为域名对应的IP地址返给用户,从而实现DNS的智能解析功能。三个出口的智能解析部署示意图见图1。

2 .专用硬件设备实现

免费软硬件部署方式主要确定由于本身性能限制,有可能造成整个系统性能提升的瓶颈。此外,系统的稳定性也是一个不容忽视的问题。而针对多条链路的健康状态的检查等更高级功能,实现起来相对困难。以上问题在较好解决的前提下,因为其低成本性,因此有一定的使用价值,而若较彻底地解决以上问题,可以采用专用的硬件链路负载均衡产品。这类设备也部署在网络出口处,在实现基本功能的基础上,还可以通过监控链路的负载状态和健康状态,根据其情况以及用户所处的位置或用户的特殊要求进行相应的智能域名解析,指引用户从最快的、最好的、最近的路径访问到网站。此外,专用设备还可以在当某条链路中断时,自动切换到其他链路上去,确保链路的高可用性。因此在性能和功能上得到了很大提升。服务器可扩展问题

解决服务器可扩展问题的基本办法是通过服务器负载均衡技术将众多请求均衡到多台服务器上,对用户而言,面对的只是一台虚拟的服务器,整个分流转发过程是透明的。现有的服务器负载均衡技术主要包括基于DNS的负载均衡、基于反向代理的负载均衡、基于HTTP重定向的负载均衡以及基于NAT的负载均衡。目前采用最多的是基于NAT的负载均衡技术。下面对其工作原理做一说明。

NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上,从而达到负载均衡的目的。起着NAT负载均衡功能的设备一般处于内部服务器到外部网间的网关位置。最基本功能可以通过软硬件方式来实现。

1.基本功能实现

为更好理解实现原理,下面简要介绍一下以Cisco路由器实现NAT负载均衡的主要配置现有一台有一个串行接口和一个Ethernet接口的路由器,Ethernet口连接到内部网络,内部网络上有三台Web服务器,为了处理好来自Internet上大量的Web连接请求,需要在此路由器上做NAT负载均衡配置,把发送到Web服务器合法Internet IP地址的报文转换成这三台服务器的内部本地地址。实现过程如图2所示。

其具体配置过程如下:

做好路由器的基本配置,定义各个接口在做NAT时是内部还是外部接口后,定义一个标准访问列表(standard access list),用来标识要转换的合法IP地址。再定义NAT地址池来标识内部Web服务器的本地地址,注意要用到关键字rotary,表明我们要使用轮循的方式从NAT地址池中取出相应IP地址来转换合法IP报文。最后,把目标地址为访问表中IP的报文转换成地址池中定义的IP地址。限于篇幅只将主要配置描述如下:

图3 Web应用加速设备部署示意

2.专用硬件设备实现

通过软硬件方式来实现NAT负载均衡主要应用在服务器数量较少,并且可以确保每台服务器能正常提供服务的情况,而上述方案的采用轮询方式可能会把请求直接抛向问题服务器,导致无法对外提供有效服务情况的发生。此外,上述方式还存在如下缺点:(1)应用系统的整体处理能力往往受到软硬件本身带宽、处理能力、稳定性的限制;(2)NAT工作在IP层,负载均衡算法有限。

因此,除以上解决方案外,在预算允许的情况下,还可以通过专用硬件设备-服务器负载均衡器来实现相关功能,专用硬件设备的主要优势包括:(1)设备的处理能力和稳定性大大得到了提高;(2)这些设备工作在4~7层,可以对2~7层的故障进行检查,使对服务器的状态检查更加丰富、灵活;(3)在动态应用中,可以进行灵活的会话保持,它可以识别客户与服务器之间交互过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。

当用户访问一个代表一个服务器群的对外IP地址时,负载均衡器会根据会话状态、负载均衡策略以及监控检查结果来决定把请求转发到哪台服务器上,最后由负载均衡器再把服务器的响应转发给用户。目前,专用的负载均衡产品可以提供多达12种算法,比如:(1)轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。(2)最少的连接方式(Lea st Connection):传递新的连接给那些进行最少连接处理的服务器;(3)最快模式(Fastest):传递连接给那些响应最快的服务器;(4)观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器,等等。需要指出的是,这些算法都能探测某个服务器发生的第2到第7层故障,若发现故障,就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。

这些算法根据业务和设备情况综合运用,在大大提升了应用系统的可用性同时也大大降低了针对规模庞大的服务器群的管理难度。

应用加速技术

上文已经提到,当网站访问量持续增加时,我们必须通过在系统中加入更多的服务器加以应对,这不但造成了硬件成本的急剧增加,也大大提高了服务器群的管理难度,降低了系统的可用性和稳定性。为有效解决这一问题,近几年,与此相关的4~7层的应用加速类产品开始出现。通过部署这类设备,可以在保持服务器不增加的情况下,将应用性能提升数倍。这就意味着,大大缩减了需要维护的服务器的数量。这类设备部署在应用系统的前端,如图3所示。应用交付类设备主要从以下方面来提升应用性能。

1.管理网络连接-TCP连接复用

基本原理是,通常情况下,Web服务器要为每一种请求建立一个新连接,而一台或多台服务器必须为每个连接分配资源,这就减慢了服务器的响应时间,并从其主要任务(为Web内容提供服务)中分流了资源。应用加速设备直接与用户建立永久的TCP连接,去除大部分本来应该由服务器执行的“你好-再见”建立和拆除开销,同时按照某个比例(比如150:1)与后台服务器建立少量的TCP连接。通过永久连接明显提高用户端TCP协议的传输效率,显著减少源服务器端的连接数量,极大地降低了其网络I/O处理的负担,使服务器将更多的系统资源用于应用层事务处理,使单台服务器可以支持更多用户的请求。

2 .TCP数据压缩

加速设备通过对静、动态内容进行压缩和调整,减少实际传输流量的大小。可以有效缩短下载页面的等待时间,改善用户对访问的满意度。另外,降低了内容对带宽的占用,网站可以用更少的带宽为同样数量的用户提供服务,或者用同样大小的带宽为更多用户提供服务。

3 .HTTP缓存

多数情况下,网站内容被访问的规律呈现高度的集中性和重复性。网站加速设备将用户曾经访问过的内容保存下来,当下次有对相同内容的请求的时候,将该内容直接发送给访问者,从而使服务器不需要重复生成相同内容的页面。

目前的加速设备不仅可以缓存静态内容,还可以对动态内容提供缓存服务。先进的控制机制可以通过多种手段确保缓存内容与数据库记录的一致性,随时监视数据库记录的变更情况,及时对已经缓存的相关动态内容做刷新或者过期处理。缓存功能可以从根本上降低应用服务器和数据库服务器的负荷。对于那些存在大量重复查询请求的动态内容应用,经过恰当的策略配置之后,一些设备甚至可以取得95%以上的缓存命中率。这意味着平均每100次查询请求,由应用加速代替数据库响应其中95个,只有5个请求需要访问数据库。这等同于将网站的服务能力提高20倍。

该方案无论对招考类网站本身的建设还是其他小型网站随业务发展而进行的扩容改造等都有较好的借鉴意义。需要注意的是,这里主要从系统架构的角度探讨解决在大并发访问环境下网站的可用性和稳定性问题,除此之外,诸如应用程序的设计以及执行效率、Web应用安全性、主要网络交换设备的处理能力等也都是提升网站性能、确保稳定可用的关键因素,在网站整体设计和部署时同样应引起足够的重视。

(作者单位为河北省教育考试院)

猜你喜欢
访问量IP地址链路
天空地一体化网络多中继链路自适应调度技术
基于星间链路的导航卫星时间自主恢复策略
铁路远动系统几种组网方式IP地址的申请和设置
高职院校图书馆电子资源中数据库的使用情况分析
公安网络中IP地址智能管理的研究与思考
如何做好搜索引擎优化(SEO)提高新闻网站访问量
如何做好搜索引擎优化(SEO)提高新闻网站访问量
一所大学有40人被确诊为抑郁症
《IP地址及其管理》教学设计
基于3G的VPDN技术在高速公路备份链路中的应用