首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
您的位置:软件研发->负载均衡浅谈之负载均衡技术发展漫谈

负载均衡浅谈之负载均衡技术发展漫谈2008-05-01 来自:java060515  [收藏到我的网摘]

市场需求是负载均衡技术发展的推动力

  在国内,如果倒退到十年前,相信很少有人知道网络负载均衡,特别是目前ICP面对的访问量暴增的问题。但是十年后的今天,网络负载均衡已经成为网络应用的重要设备,甚至成为大型网络应用的核心设备。如今,负载均衡设备市场甚至并驾于基础路由、交换设备市场。

  毫无疑问,随着互联网、移动网络接入成本的降低,Internet日益普及以及电子商务、电子政务的发展,互联网正在日益深入地走入我们的生活,越来越成为人们获取信息的高效平台,越来越多的应用系统需要面对更高的访问量和数据量。同时,企业对在线系统的依赖也越来越高,大量的关键应用需要系统有足够的稳定性及高效率。这些要求使得单一的网络服务设备已经不能满足这些需要,由此需要引入服务器的负载均衡,实现客户端同时访问多台同时工作的服务器,一则避免服务器的单点故障,再则提高在线系统的服务处理能力。从业界环境来说,如下的应用需求更是负载均衡发展的推动力:

  1) 业务系统从Client-Server转向采用Browser-Server 系统结构,关键系统需要高可用性。

  2) 电子商务系统的高可用性和高可靠性需要。

  3) IT应用系统大集中的需要(通信BOSS系统大集中、税务大集中,证券大集中,银行大集中等等)。

  4) 数据中心降低成本,提高效率。

  负载均衡技术在现有网络结构之上提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。它有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间; 其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

  负载均衡技术的发展历史和含义

  负载均衡市场从市场机遇初现,到目前大规模应用,基本走过了以下几个阶段:

  1) 1996 ~ 1999年:商机初现,网络负载均衡的起始阶段

  2) 2000 ~ 2003年:网络泡沫的破裂成为对负载均衡市场的生存考验,锁定企业成为负载均衡的重点发展方向。

  3) 2003 ~ 2005年:网络流量不断升级,推动负载均衡市场突变,成为热门。

  4) 2006 ~ 目前:负载均衡升级,向应用交付发展。

  可以看出,最近几年成为负载均衡市场发展的黄金时代。这也从大大小小的国内企业转向负载均衡市场,国外的如F5、思科等纷纷登陆国内的形势也可以看出目前负载均衡市场的繁荣。

  实质上,负载均衡设备不能算是基础网络设备,而是一种性能优化设备。对于网络应用而言,并不是一开始就需要负载均衡,当网络应用的访问量不断增长,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。

  负载均衡有两方面的含义:首先,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,这就是我们常说的集群(clustering)技术。

  第二层含义就是:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。

  通常,负载均衡会根据网络的不同层次(网络七层)来划分。其中,第二层的负载均衡指将多条物理链路当作一条单一的聚合逻辑链路使用,这就是链路聚合(Trunking)技术,它不是一种独立的设备,而是交换机等网络设备的常用技术。

  现代负载均衡技术通常操作于网络的第四层或第七层,这是针对网络应用的负载均衡技术,它完全脱离于交换机、服务器而成为独立的技术设备。

实现负载均衡的算法介绍

  我们知道,负载均衡器在负载均衡设备中的作用是至关重要的,它起着承上启下的作用。一方面接收用户的网络请求,一方面把请求按照某种算法把请求转接到特定的应用服务器中,实现负载均衡。所以,负载均衡器中的算法是至关重要的。大多数负载均衡设备实现了以下多种算法。

  3.1 轮询调度

  轮询调度(Round Robin Scheduling)算法就是以轮询的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

  在实际实现过程中,一般会为每台服务器设定一个权重值,这就是权重轮询调度算法。

  3.2 最小连接调度(Least-Connection Scheduling)

  最小连接调度(Least-Connection Scheduling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。

  在实际实现过程中,一般会为每台服务器设定一个权重值,这就是加权最小连接调度(Weighted Least-Connection Scheduling)

  3.3 基于局部性的最少链接(LBLC)

  基于局部性的最少链接调度(Locality-Based Least Connections Scheduling,以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。

  LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器; 若服务器不存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

  3.4 带复制的基于局部性最少链接(LBLCR)

  带复制的基于局部性最少链接调度(Locality-Based Least Connections with Replication Scheduling,以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。

  LBLCR调度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载; 当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器数目。这样,该“热门”站点的映像不太可能出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。

  3.5 目标地址散列调度(Destination Hashing Scheduling)

  目标地址散列调度(Destination Hashing Scheduling)算法是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。

  目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  3.6 源地址散列调度(Source Hashing Scheduling)

  和目标地址散列调度类似,唯一的区别是按照源地址为散列函数的散列键。

  在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。

  总结

  负载均衡技术的发展为互联网的健康、顺利的发展起到了至关重要的作用,它至少解决了以下几个问题:

  1)服务器的服务能力远远不能满足需求;

  2)服务器的服务可靠性不能保证

  3)服务响应时间长,延迟大

  可以看出,以上三个问题是目前ICP们面临的主要问题,而负载均衡技术的发展,已经成功地解决了以上问题。所以,我们可以说,负载均衡技术是提高网络应用高可用性的重要技术之一,负载均衡市场目前也正处于黄金时代。

作者: 潘风文,  出处:IT专家网

推荐人评论

在国内,如果倒退到十年前,相信很少有人知道网络负载均衡,特别是目前ICP面对的访问量暴增的问题。但是十年后的今天,网络负载均衡已经成为网络应用的重要设备,甚至成为大型网络应用的核心设备。如今,负载均衡设备市场甚至并驾于基础路由、交换设备市场。

用户评论

正在载入评论列表...

是谁推荐了此篇文章

专家头像付江CSDN频道编辑
个人blog发送信息
付江推荐的其他文章

热点新闻

热点评论

    视频访谈

    精彩专题

    网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告

    北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright 2000-2008, CSDN.NET, All Rights Reserved
    GongshangLogo