最少连接数
最少连接数算法是一种智能、动态的负载均衡算法,主要是根据集群的每个节点的当前连接数来决定将请求转发给哪个节点,即每次都将请求转发给当前存在最少并发连接的节点。
好处是可以根据集群节点的负载情况来进行请求的动态分发,即机器性能好,处理请求快,积压请求少的节点分配更多的请求。实现集群的整体稳定性和将请求合理分发到每一个节点,避免某个节点因为处理超过自身所能承受的请求量而导致宕机或者响应过慢。
最快响应时间
最快响应时间算法也是一种智能、动态的负载均衡算法,与最少连接数类似,也是根据集群节点的负载情况来将请求合理分发到各个节点,实现集群的整体稳定性和机器资源的重复利用。
最快响应时间是基于请求与响应的时间延迟来衡量机器的负载情况的,即将请求分发给当前处理请求最快,负载均衡器从该节点获取响应延迟最小的节点,而响应时间慢的节点则分配更少的请求。
随机算法
随机算法主要是随机选取集群中的某个节点来处理该请求,由概率论的知识可知,随着请求量的变大,随机算法会逐渐演变为轮询算法,即集群各个节点会处理差不多数量的请求。
轮询算法
轮询算法主要是将客户端发送到负载均衡器的请求依次轮流地转发给服务集群的某个节点,而不需要考虑每个集群节点当前的连接数和工作负载以及该节点的机器性能。实现简单,每个集群节点平均分担所有请求,一般在集群所有节点机器性能接近时使用。
加权轮询与加权随机
加权算法主要是根据集群的节点对应机器的性能的差异,给每个节点设置一个权重值,其中性能好的机器节点设置一个较大的权重值,而性能差的机器节点则设置一个较小的权重值。然后可以继续基于轮询或者随机的算法来选取一个节点来处理请求,只是权重大的节点能够被更多的选中。
哈希与一致性哈希
哈希算法主要将对请求的IP地址或者URL计算一个哈希值,然后与集群节点的数量进行取模来决定将请求分发给哪个集群节点。这种哈希算法实现简单并且在集群节点数量不变的情况下,能够将相同IP地址的请求分发给相同的机器处理。但是如果集群节点发生变化,则会对集群的所有节点进行影响,如可能导致某个机器性能较低的节点突然接收到大量请求,从而影响集群的整体稳定性。
一致性哈希函数会将给定的参数映射到由2的32次方个点组成的环形槽的某个槽点上。在使用一致性哈希函数来进行负载均衡时,首先将集群的多个节点哈希到该环形槽的对应的某个槽点上,然后当负载均衡器接收到请求时,使用该请求的IP地址或者URL来作为一致性哈希函数的参数,生成该请求对应环形槽的某个槽点,最后从顺时针方向找到第一个位于该环形槽的集群节点,则将该请求转发给这个集群节点处理。
以上是关于负载均衡算法的介绍,西部数码负载均衡EasySLB服务,在多台云主机间实现应用程序流量的自动分配。实现故障自动切换,提高业务可用性,并提高资源利用率。业务链接 https://www.west.cn/cloudhost/slb.asp