负载均衡算法有哪些?

Sherwin.Wei Lv7

负载均衡算法有哪些?

回答重点

负载均衡有很多种策略,这里主要介绍的是一些核心的负载均衡算法,常见的大致如下:

1) 轮询算法(Round Robin):轮询应该是最简单的负载均衡算法了,其主要就是按照顺序将请求分配给后端服务器,不过一般适用于后端服务器的请求能力差不多的情况下,如果后端服务器之间处理请求的能力差得比较多的话,这种的缺点就非常明显了。

2)加权轮询算法(Weighted Round Robin):加权轮询就是在轮询算法的基础上添加权重的概念。对后端每个服务器赋予一个权重值,权重值越高,其被选中的概率就越大,这种方式从一定程度上缓解了轮询算法的缺点,可以从后端服务器的性能设置对应的权重和分配比例,使得性能比较高的服务器处理更多的请求,从一定程度上提高了整体服务的可用性和吞吐量。

3)随机算法(Random):这个概念就和我们投骰子一样,将请求随机分配给后端服务器,每个后端服务器被选中的概率是一致的,不考虑服务器的负载情况。这个和轮询的缺点是类似的,就是如果后端服务器的性能差得很多,就容易导致性能较强的服务器闲置,然后性能较差的服务器处理的请求差不多。

4)加权随机算法(Weight Random):加权随机就是在随机的基础上添加权值的概念,因为原先的随机算法没有考虑到服务器的性能,添加权值的概念之后就可以根据服务器的性能设置对应的权值了,然后根据服务器的性能和处理能力调整对应的权重,减少性能强的服务器大的闲置时间。

5)最少连接算法(Least Connection):最少连接算法主要是根据后端服务器当前的连接数来决定请求的分配,负载均衡器会选择当前连接最少的服务器进行请求分配,保证后端服务器的负载均衡,这种算法适用于后端服务器的处理能力不同或者请求的处理时间不同的场景。

6)哈希算法(Hash):哈希算法主要是根据请求的某个特定关键字来实现负载均衡的,比如通过请求的 URL 路径、请求的 IP 地址等来计算哈希值,然后根据哈希值选择相应的后端服务器,比如 Redis 集群采用的就是这种负载均衡方式。

Comments
On this page
负载均衡算法有哪些?