常见负载均衡算法
what:
1、轮询法:
即在地址列表中,依次选择一个地址,因此在请求数目上的分配相对比较均衡。该方案对于服务能力一致的服务来说OK的,但是对于服务能力不均匀的服务器,就会出现“能力强的服务,不能承接更多的请求”。
2、随机法:
随机的在地址列表中任一选择一个服务器,去承接请求服务。
如果我们假设随机的足够平均,那么其是趋向于轮询算法的,也就是能够达到了轮询算法的效果。
3、加权轮询法:
每个机器接受的连接数量是按权重比例分配的,即能力强的服务器,会获得更多的请求。是轮询算法的改进。
4、动态轮询法:
类似于加权轮询,但是,权重值基于对各个服务器的持续监控,并且不断更新。这是一个动态负载均衡算法,基于服务器的实时性能分析分配连接,比如每个节点的当前连接数或者节点的最快响应时间等。
5、最快算法:
基于所有服务器中的最快响应时间分配连接。该算法在服务器跨不同网络的环境中特别有用。
6、最少连接:
新连接分配给当前连接数目最少的服务器。该算法在各个服务器运算能力基本相似的环境中非常有效。
7、源地址哈希法:
根据消费者的唯一标识(例如:IP),进行哈希值运算之后,得到的哈希值与服务器个数进行求模,然后再分配到相对应的服务器上。如果服务器列表不变,那么访问的将会是同一个服务器。
可能会出现:多个服务器分配不均匀,也就单一个服务器特别繁忙,其他的可能处于空闲状态。