常见负载均衡算法的简介

版权声明:本文为博主原创文章,可任意转载,如不嫌麻烦请注明出处。 https://blog.csdn.net/qq_24693837/article/details/71757496

负载均衡算法的种类很多,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法。

1.轮询法

轮询很容易理解,将请求按顺序轮流分配到后端服务器上,它均衡地对后端每一台服务器而不关心服务器的实际连接数和当前的系统负载。使用轮询策略的目的在于做到请求转移的绝对均衡,但付出的性能代价是相当大的。

2.随机法

通过系统随机函数,根据后端服务器列表大小的值随机选取其中的一台进行访问。有概率统计理论可以得知,随着调用量的增大,其实际效果越来越接近于平均分配流量到每一台后端服务器,也就是轮询的结果。

3.源地址哈希法

源地址哈希的思想是获取客户端访问的IP地址值,通过哈希函数计算得到一个数值,用该数值对服务器列表大小进行取模运算,得到的结果便是要 访问的服务器序号。采用哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表大小不变时,它每次都会被映射到同一台后端服务器进行访问。根据此特性可以在服务消费者和服务提供者之间建立有状态的session 会话。

4.加权轮询法

不同的后端服务器的配置和负载并不相同,因此它们的抗压能力也不尽相同。给配置高、负载低的机器设置更高的权重,让其处理更多的请求,而低配置、负载高的机器,则给其配置较低的权重,降低其系统负载,加权轮 询能很好地处理这一问题,并将请求顺序按权重分配给后端。

5.加权随机法

与加权轮询法类似,加权随机法也根据后端服务器不同的配置和负载情况,配置不同的权重。不同的是,它是按照权重来随机选取服务器的,而非顺序。

 

总结:前面我们费尽心思来实现服务消费者请求次数分配的均衡,我们知道这样做是没错的,可以为后端的多台服务器平均分配工作量,最大程度地提高服务器的利用率,但是,实际情况真的如此吗?在实际情况中,请求次数的均衡真的能代表系统的负载吗?我们必须认真地思考这一问题,从算法实施的角度来看,以后端服务器的视角来观察系统负载,而非请求发起方来观察。因此,我们得有其它的算法来实现可供选择,最小连接数法便属于此类算法。

 

6.最小连接数法

最小连接数法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它正是根据后端服务器当前的连接情况,动态地选取其中积压连接数最少的一台服务器来处理当前请求,尽可能提高后端服务器 的利用效率,将负载合理地分流到每一台机器。

 

 

 














猜你喜欢

转载自blog.csdn.net/qq_24693837/article/details/71757496