集群的可扩展性及其分布式体系结构(6)
2008-11-25 10:56:49 来源:WEB开发网核心提示:常见的平衡算法一般的平衡算法主要任务是选择一个集群节点,然后将新请求发给它,集群的可扩展性及其分布式体系结构(6),有些简单平衡方法可以独立使用,有些必须和其它简单或高级方法组合使用,因此和轮转法一样,需要在相同的节点环境中,平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法
常见的平衡算法
一般的平衡算法主要任务是选择一个集群节点,然后将新请求发给它。有些简单平衡方法可以独立使用,有些必须和其它简单或高级方法组合使用。平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡。而一个好的负载均衡算法也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此我们在考察负载均衡算法的同时,也要注意算法本身的适用面,并在采取集群部署的时候根据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用。
轮转法
轮转算法是所有调度算法中最简单也最容易实现的一种方法。在一个抽象的任务队列里(常常在操作系统任务调度中见到),队列的每个成员(节点)都具有相同的地位,轮转法简单的在这"串"成员中线性轮转选择。
在负载平衡环境中,均衡器将新的请求轮流发给节点表(节点队列)中的下一节点,如此连续、周而复始,每个集群的节点都在相等的地位下被轮流选择,是一种绝对的"平均主义"。这个算法在DNS域名轮询中被广泛使用。
轮转法的活动是可预知的,每个节点被选择的机会是1/N,因此很容易计算出节点的负载分布。轮转法典型的适用于集群中所有节点的处理能力和性能均相同的情况,在实际应用中,一般将它与其他简单方法联合使用时比较有效。
随机法
首先需要明确的一点是,计算机系统生成的随机数永远是伪随机。随机法赋给各节点一个由伪随机算法产生的值,具有最小或最大随机数的节点最有优先权。随机法实际上相当于"无偏见"的给节点产生权值,每个机器都有可能获得最大的优先级,这也是一种"机会均等"的调度算法。因此和轮转法一样,需要在相同的节点环境中,这种算法才能运行得最好。
更多精彩
赞助商链接