常见的负载均衡算法算法
轮循(Round Robin)
加权轮循(Weighted Round Robin)、
最少链接数(Least Connection)
最少链接数慢启动时间(Least Connection Slow Start Time)、
加权最少链接(Weighted Least Connection)
基于代理的自适应负载均衡(Agent Based Adaptive Balancing)、
固定权重(Fixed Weighted)
加权响应(Weighted Response)
源IP哈希(Source IP Hash)后端
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操做单元上进行执行,
例如Web 服务器、 FTP服务器、 企业关键应用服务器和其它关键任务服务器等,从而共同完成工做任务。缓存
轮询
轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),而后从新开始循环。
算法的优势是其简洁性,它无需记录当前全部链接的状态,因此它是一种无状态调度。服务器
随机(Random)法
经过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
由几率统计理论能够得知,随着客户端调用服务端的次数增多,
其实际效果愈来愈接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。
基于几率统计的理论,吞吐量越大,随机算法的效果越接近于轮询算法的效果。session
源地址哈希(Hash)法
源地址哈希的思想是根据获取客户端的IP地址,经过哈希函数计算获得的一个数值,用该数值对服务器列表的大小进行取模运算,获得的结果即是客户端要访问服务器的序号。
采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
源地址哈希法的优势在于:保证了相同客户端IP地址将会被哈希到同一台后端服务器,直到后端服务器列表变动。
根据此特性能够在服务消费者与服务提供者之间创建有状态的session会话。
源地址哈希算法的缺点在于:除非集群中服务器的很是稳定,基本不会上下线,不然一旦有服务器上线、下线,
那么经过源地址哈希算法路由到的服务器是服务器上线、下线前路由到的服务器的几率很是低,若是是session则取不到session,若是是缓存则可能引起”雪崩”。负载均衡
加权轮询(Weight Round Robin)法
不一样的后端服务器可能机器的配置和当前系统的负载并不相同,所以它们的抗压能力也不相同。
给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,下降其系统负载,
加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
与轮询法相似,只是在获取服务器地址以前增长了一段权重计算的代码,根据权重的大小,将地址重复地增长到服务器地址列表中,
权重越大,该服务器每轮所得到的请求数量越多。dom
加权随机(Weight Random)法
与加权轮询法同样,加权随机法也根据后端机器的配置,系统的负载分配不一样的权重。不一样的是,它是按照权重随机请求后端服务器,而非顺序。函数
最小链接数(Least Connections)法
最小链接数算法比较灵活和智能,因为后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的链接状况,
动态地选取其中当前积压链接数最少的一台服务器来处理当前的请求,尽量地提升后端服务的利用效率,将负责合理地分流到每一台服务器。
参考:http://mp.weixin.qq.com/s?__biz=MzAxNDMwMTMwMw==&mid=2247486378&idx=5&sn=dae35a12b684f7b9ccd922d8e12cd098代理