分类: LINUX
2008-04-26 21:16:37
网络负载平衡基本算法与进阶 |
级别: 初级 林凡 (), 研发部经理, 辰讯软件工作室 2002 年 4 月 29 日 本节主要介绍网络负载均衡的几类基本的算法,以及在这些算法基础上所构建的复杂的网载均衡体系。这些负载均衡体系都针对了实际应用中的某些特殊需要进行了优化处理,有着各自的适用面。
一般的平衡算法主要任务是选择一个集群节点,然后将新请求发给它。有些简单平衡方法可以独立使用,有些必须和其它简单或高级方法组合使用。平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡。而一个好的负载均衡算法也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此我们在考察负载均衡算法的同时,也要注意算法本身的适用面,并在采取集群部署的时候根据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用。
前面描述的只是负载均衡的基本算法,在实际设计负载均衡集群时,需要将他们进行组合,针对特定的应用或者特定的系统进行优化,以提供更有用、更实际的网络负载平衡。考虑主要的优化面有:优化网络流量、节点负载公平分布、路由优化(拓扑优化)、响应时延最小化、管理或安全优化、特定应用性能优化等等。 多数复杂的负载均衡算法是几个优化方案的组合。在核心网络的负载均衡设备中,主要考虑流量优化、路由优化和响应延时;在一般的商务集群中,主要考虑响应延时和安全、管理方面的优化;如果是针对特定应用的负载均衡器(第七层交换),就要考虑特定应用的性能问题。下面是典型的网络负载均衡高级方法的例子:
网络负载平衡系统有独立的平衡器来监视网络请求,并按某种规则将请求分配到本地或其他分布式网络的集群节点上。这里介绍了一些基本的用于构建平衡系统的算法,这些算法基本上都基于多任务的队列模型,并配合相关技术以解决TCP/IP集群节点相关的问题。这些方法尽管独自开发,但却有很多相似的形式和作用,几个方法可以组合产生更复杂的负载平衡,其中典型的internet域名轮转系统在过去的负载平衡中起着重要作用。TCP/IP协议体系中,主要在两层进行平衡:网络层和传输层,由于没有独立的会话层,产生了给予特定应用协议的平衡方法。现在最大热点是在本地或分布结构中构建web服务器负载平衡系统。
|