1.轮询算法
提供同质服务的节点逐个对外提供服务,概率相同
2.加权轮询算法
在轮询算法的基础上,考虑到机器的差异性,分配给机器不同的权重,能者多劳。
3.随机算法
随机选择一个节点服务
4.加权随机算法
在随机算法上引入不同节点的权重
5.哈希法
根据客户端IP或请求的KEY,计算一个hash值,然后对节点数目取模。
只要hash结果足够分散,也是能做到绝对均衡的。
6.一致性hash
hash算法缺点:当节点的数目发生变化时,请求会大概率分配到其他的节点,引发一系列的问题。在某些情况:分布式存储,是不允许的
一致性hash:一个物理节点与多个虚拟节点映射,在hash的时候,使用虚拟节点数目而不是物理节点数目。当物理节点数目变化时,虚拟节点数目无需变化,只涉及到虚拟节点的重新分配。而且,调整每个物理节点对应的虚拟节点数目,也就相当于每个物理节点有不同的权重。
7.最少连接算法(least connection)