负载均衡策略
1 负载均衡策略分类
1.1 软/硬件负载均衡
软件负载均衡是通过安装一个或多个软件系统到服务器操作系统上来实现负载均衡。
优点是基于特定的环境、配置简单,使用灵活,成本低廉,在性能上也能够满足一般的负载均衡需求。
当前均衡系统中比较知名的有Nginx,LVS和HAProxy。
因为需要附加一个软件系统,其本身会占用服务器资源,功能越强大就会消耗越多的系统资源,当系统本身和用户流量发展到一定规模是,可能负载均衡系统反而会成为系统的瓶颈所在。
硬件负载均衡是通过在服务器和外部网络之间安装负载均衡的硬件设备(通常叫做负载均衡器)来实现负载均衡。
其独立于操作系统,不占用系统本身资源,能大大提高系统的整体性能。结合多样化、智能的均衡策略,可达到最佳的负载均衡需求。
比较知名的有F5和Netscaler。
硬件系统在性能上能够达到最优,软件系统中性能较高的LVS系统也仅能达到F5 60%左右性能。但是其成本相对较高。相对于一般的产品系统而言,太过于奢侈。
也有研究人员提出了一些软硬件结合的负载均衡方案,希望在性能和价格之间找到一个平衡点。以满足实际需要,但是,传统网络软硬结合负载均衡策略出现了可扩展性差、交换技 术繁琐和自我调节能力差等问题。软件负载均衡方式在一般系统的应用上还是占据了主要的地位。
1.2 静态和动态负载均衡
静态负载均衡策略,不考虑节点的实际负载情况,依据设置的分配策略机械地将任务分散到节点上。算法往往比较简单,容易模型分析。如轮询和散列负载均衡算法。这些都是早期比较常用的负载均衡算法,由于没有考虑实时的负载信息,在一些情形下会导致节点负载过大,整体性能下降。
动态的负载均衡策略是基于实时的负载信息来确定节点的分配。从策略上能够较静态策略更好的提升系统的性能,因为动态策略需要收集实时信息决策,增加了额外的系统开销,同时整个策略也会更为复杂。如果集群的规模过于庞大,动态均衡可能成为系统性能的瓶颈。动态策略也是目前负载均衡研究的热点。
1.3 集中和分布式负载均衡
根据负载均衡器在系统中的逻辑位置,我们可以将策略分为集中式和分布式。集中式负载均衡由一个中央负载均衡器来分配负载任务,整体架构简单,但是具有集中式系统的的弊端,单点故障和容易成为系统性能的瓶颈。分布式负载均衡运行在每个节点上,架构复杂,通信代价大,会消耗系统的整体性能。
2 负载均衡的实现层次分类
负载均衡系统中,能够利用各种技术实现均衡的效果。常见的方法有下面几种
2.1 基于DNS域名解析
DNS服务器的主要功能是提供域名(服务器名称)和IP地址的转换。本质上是一个C/S模式的数据库,存储了域名到IP的映射。DNS实现负载 均衡的机制是如图1,当用户请求域名的IP时&#