一致性哈希算法原理设计 | 知致智之
针对ReHash的弊端,Karger提出了一种算法,算法的核心是"虚拟节点"。
将所有的数据映射成一组大于服务器数量的虚拟节点,虚拟节点再映射到真实的服务器。所以当服务器宕机时,由于虚拟节点的数量固定不变,所有不需要ReHash,而只需要将服务不可用的虚拟节点重新迁移,这样只需要迁移宕机节点的数据。
经典的算法中,宕机服务器的下一个真实节点将提供服务。
Amazon的大数据存储平台"Dynamo"使用了一致性哈希,但它并没有使用经典算法,而是使用了故障节点ReHash的思路。
系统将所有的虚拟节点和真实服务器的对应关系保存到一个配置系统,当某些虚拟节点的服务不可用时,重新配置这些虚拟节点的服务到其他真实服务器,这样既不用大量迁移数据,也保证了所有服务器的负载相对均衡。
Read full article from 一致性哈希算法原理设计 | 知致智之