我们知道,仅仅简单的依靠提高硬件性能并不能真正解决网站负载均衡问题。因为单台服务器的性能总是有限的,一般来讲,一台PC服务器所能提供的并发访问处理能力大约为1000个,更为高档的专用服务器
能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求。 尤其是网络请求具有突发性,当某些重大事件发生时,网络访问就会急剧上升,从而造成网络瓶颈。必须采用多台服务器提供网络服务,并将网络请求分配给这些服务器分担,才能提供处理大量并发服务的能力。 当使用多台服务器来分担负载的时候,最简单的办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台用于提供游戏页面;或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等需要大量消耗资源的动态页面访问。然而由于网络访问的突发性,使得很难确定那些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大浪费。 事实上造成负载过大的页面常常是在变化中的,如果要经常按照负载变化来调整页面所在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方向的调整,对于大负载的网站,根本的解决办法还需要应用负载均衡技术。 一、大型网站的整体网络系统设计 某教育网站是一个大型远程教育网站,可能涉及到多方面的网站应用,包括计算集中型的应用,读写频繁的应用,比如网络数据库;传输量大的应用,比如流媒体服务;访问量大的应用,比如WEB应用。 由于存在多方面的网站应用,因而对于网站系统,数据流量负载并不均匀。对于计算集中型的应用,服务器计算负荷会很大;对于读写频繁的应用,存储系统面临考验;对于传输量大的应用,网络带宽是关键;对于访问量大的应用,防火墙和路由器成为瓶颈。 针对上述问题与分析,首先是要从硬件和网络结构上尽量提高网络和系统性能和效率。首先,采用高性能的PC服务器作为网络服务器,提高服务器的计算和负载能力。采用大容量、高传输速率的存储系统和利用RAID 5技术实现很高的读写速度和性能。对于流媒体服务和WEB应用,采用千兆技术实现到INTERNET的高速接入;选用高性能的防火墙用于提供内外网访问和WEB发布服务的安全,同时,实现高效的WEB访问。 二、网站负载均衡解决方案 某教育网站作为一个大型教育网站,业务量的发展将非常迅速,并且,网络新的应用层出不穷,即使按照当前最优配置建设的网站系统,也很快会落后于网络流量的发展。尤其是网站的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不至于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。 负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。 根据上述分析,流量负载可能在网络中很多地方出现,因而负载均衡策略也应有多种多样的形式。广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二、三、四、七层都有相应的负载均衡策略,例如:在数据链路层上,可以基于数据包的目的MAC地址选择不同链路;在网络层,可以用基于IP地址的分配方式,将数据流疏通到多个节点;而所谓第四层交换乃至第七层交换,本身便是一种基于访问流量的控制方式,起到了负载均衡的作用。 因此,我们将从网络的层次来阐述某教育网站的系统负载均衡方案。 1、带均衡策略的服务器群集解决方案 某教育网站的Web服务器及其他应用服务器承载着重要的网站应用。然而,单一计算机可以提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。 使用多服务器的分布式结构,将网站的WEB和其它应用分布在多台服务器上,即将某教育网站的WEB和其它应用服务分布在4台IBM x336服务器上。其中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,通过天融信的NG FW4000防火墙将外部发送来的请求均匀分配到4台服务器上,接收到连接请求的服务器都独立回应客户的请求。由于通过同步分发,建立内容完全一致的Web服务器并不困难,因此基于服务器集群的负载均衡技术是很容易实现的。 NG FW4000防火墙可以支持一个服务器阵列,这个阵列经过防火墙对外表现为单台的服务器,防火墙将外部来的访问在这些服务器之间进行均衡,同时可以识别出故障的服务器。防火墙的均衡策略如下: 顺序选择地址+权值。 根据PING的时间间隔来选择地址+权值。 根据CONNECT的时间间隔来选择地址+权值。 根据CONNECT然后发送请求并得到应答的时间间隔来选择地址+权值。 2、采用SSL/XML加速的解决方案 由于某教育网站在网站应用系统建设中,要求应用系统模块之间的接口采用XML标准和Web Service规范,同时,作为一个综合性的大型网站,要求提供标准的在线交易功能和安全可靠的网上支付功能。因此,在网站网络传输的内容上,SSL和XML将占用相当的服务器资源,会影响网络的传输速度。 SSL(加密套接字协议层)是一种应用极为广泛的WEB信息安全传送协议。最初由Netscape开发以提供Internet上的安全连接和传送,目前,98%的Web上的安全传送都运用SSL。SSL已经成了安全互联网交易中数据加密的工业标准,采用SSL的网站在1998年和1999年间增加了两倍。由于SSL运用加密算法和密码,其加密/解密过程需大量占用服务器的CPU资源,使CPU利用率接近100%,从而大大降低了服务器性能。当网络用户大大增加后,网络性能将急剧降低,很可能用户会因网络响应欠佳而失去耐心离开网站。 电子商务时代,服务器反应速度至关重要,为根本解决SSL给服务器运行带来的不利影响,必须采用专门设备处理SSL协议,以使服务器CPU从繁重的加密/解密过程中解脱出来。 ![点击放大此图片](https://i-blog.csdnimg.cn/blog_migrate/7b572c45f89ddfd5a88b50556b92feb6.png) 如上图所示,当使用SSL加速器时,所有非SSL数据流可以未受任何改变地通过加速器;但是当由SSL加密过的数据流经过SSL加速器时,进入的SSL数据流被解密并干净地传给服务器,而外流的SSL数据流被加密并传向客户。这样服务器只需简单地处理SSL请求,原本消耗众多计算资源的HTTP/SSL现在被专用的SSL加速设备负责处理。使用了SSL加速器之后,系统每秒处理的安全连接数可由原来几十个增长到数百个。当然,如果需要最大限度地利用服务器,也可以卸载SSL处理工作。 此外,SSL加速器可以实现灵活的动态堆叠,实行自动的“任务分担”以得到最大的扩展能力。一般SSL加速器可以自动与所有类型的服务器协同运行,并可以支持一台或多台服务器。 XML(扩展标识语言)是SGML(标准通用标识语言)的一个子集,它已经快速取代EDI(电子数据交换)成为B2B网上交易的统一格式。事实已经证明,XML所采用的标准技术最适合Web开发。XML支持结构化的数据,可以更详细地定义某个数据对象的数据结构,例如,描述产品,详细定义该产品的生产厂、产品名、产品号、产地等信息,这种定义不仅为标记该产品提供方便,而且这种XML数据很容易按生产厂、产品名等排序,使用户的查询变得更方便。 XML加速器可以将XML交易进行分类,如按照商业合作伙伴名称或类型、交易价值或数量以及时刻或时区为依据,配置业务优先级,从而提高响应速度,解放服务器资源,更快地处理交易。智能化的XML加速器可以使用多变量分类包括与、或,以满足复杂业务的优先级要求。还有的XML加速器自身提供服务器的负载均衡,以达到快速、安全的目的。 |