负载均衡算法及实践

虚拟服务器节点

哈希算法并不是保证绝对的平衡,尤其服务器较少的话,对象并不能被均匀的映射到服务器上。为了解决这种情况,Consistent Hashing 引入了“虚拟节点”的概念: “虚拟节点”是实际节点在环形空间的复制品,一个实际节点对应了若干个“虚拟节点”,这个对应个数也成为“复制个数”,“虚拟节点”在哈希空间中以哈希值排列。

仍以4台服务器为例,在下图中看到,引入虚拟节点,并设置“复制个数”为 2 后,共有 8 个“虚拟节点”分部在环形区域上,缓解了映射不均的情况。

该图中,相同颜色和序号的节点都是由同一台服务器虚拟化出来的节点。可以更加均匀地分配到整个环上,以实现负载的均衡性。