负载均衡是很多系统管理员都会忽视的问题,但是它很可能会损害它们的网络。如果系统管理员发现网络性能不好,通常他们会为客户端提供更多的带宽(无论是内部网、外部网还是互连网),还要提供更快的骨干网并在服务器上花更多的钱。但是这条路有时也需要*化,你可以通过网络负载均衡来实现这种*化。
网络负载均衡让系统能够更均衡地分配资源,避免快速涌来的大量数据被分配给*台Web服务器所导致通信阻塞。让我们来看看不同类型的网络负载均衡,并了解为什么他们能够提高你的网络的性能。
三代不同的负载均衡方法
在市场上有几代不同的负载均衡的方案,它们的功能从简单逐渐变得更加复杂、强大。
第*代负载均衡产品只是简单的round-robin DNS机器它能够把HTTP进程在几个IP主机里进行分配。这类系统使用简单的PING命令来保证进程请求不会被送到*个状态不佳的服务器那里,并为多服务器引入了*个变量来表示容错率。
第二代负载均衡产品不仅仅检查服务器是否还在运行,它还要检查服务器的性能状态。也就是说,如果*台服务器负载过重,发进来的请求就会被转发到其他机器上以保证负载在所有能够获得的资源里均衡分配了。
第三代负载均衡产品覆盖了整个内容分发系统。随着Web和网络服务变得越来越成熟,仅仅监视Web服务器的某*层是远远不够的。如果*个Web主机非常健康,但是它的后台服务器或/和应用有问题的话,把请求发给这台主机也是毫无意义的。新的服务,比如在线销售,都已经开始使用多层服务器来管理内容、数据库和事务处理引擎。由于电子商务目前已经关系到客户的钱,这就要求我们必须保证能够为客户提供尽可能好的性能和可靠性。因此,负载均衡厂商开发了第三代负载均衡产品以保证整个内容分发系统的健康、良好运行。
两种类型的负载均衡产品
负载均衡产品基本上可以分成两大类:
基于软件的负载均衡产品
据我所知,基于软件的负载均衡产品唯*的问题就是它的速度比基于硬件的负载均衡产品要慢。你之所以需要*个负载均衡产品,**是因为你的网络以线速运行而你的服务器的速度却取决于应用的速度或应用传递内容的速度。从另*个方面说,如果你的网络发生了变化,或者你需要*些特殊的功能,软件能够非常快地进行升*并满足你的需要。
基于硬件的负载均衡产品
基于硬件的负载均衡通常是由路由器和switch完成的。这些设备使用ASIC(application-specific integrated circuits),以线速运行。这是市场上*快的负载均衡产品。但是由于所有的功能都是由硬件完成,如果你的网络商业流程发生了改变,你就只能等着你的供应商来满足你的需求了。你甚至可能会不得不买*个新的硬件。
它是如何工作的?
负载均衡产品根据他们通过自己的agent(由负载均衡产品厂商开发)或者使用*些系统管理工具的模板,来收集关于后台服务器的信息,并根据这些信息调整对资源的分配。Agent和系统管理工具两种方法各有利弊。Agent是为特定的软件和硬件服务的,它能够非常严密地监视应用状况。但是,这也意味着你被锁定在某*个特定的厂商上了。
使用现有系统管理工具的负载均衡产品可以通过API和公共协议监视更多的软件和硬件。当然,使用这类产品来管理你的商业系统会引起*些安全性上的问题,这是你必须提前考虑到的。
如上所述,新*代的负载均衡产品不仅仅处理网络和服务器性能问题,他们还能够根据前台请求和后台内容来分配资源。这*类产品会识别请求,然后把该请求挂起,直到所请求内容已经准备好了,这叫做delayed binding。
这种能够识别内容的路由非常有用,服务器集群可以为特定的应用(比如CGI、流媒体、cookie服务等等)进行调整,而且负载均衡产品会处理并分发所有的请求到保持连接的客户端。这点非常重要,比如,使用SSL的Web购物车事务,因为SSL连接非常耗占处理器资源,所以必须稳定地保持几个Web流程和事务处理。
结束语
选择何种负载均衡技术/产品应该取决于你需要处理的负载有多少,以及它们的复杂程度。显然*个受欢迎但是简单的企业内部网站的负载均衡方案要比*个电子商务网站的简单的多。至于电子商务网站,也许*新*代的负载均衡产品能够*好地满足它们的需求。