一致性哈希原理

一致性哈希原理

http://wenku.baidu.com/link?url=fY3-zLTqzQ_7TWAFh5xzNywwrCZ4IvP9UkUZWkTbg6sB61LovRmVd4vq6d1ce959a6-ZmbN1rtHrfoR1AePPuEDB-dQbWuxGha5yotHtq0K

应用场景分析

1>memcache的add方法:通过一致性hash算法确认当前客户端对应的cache server的hash值以及要存储数据key的hash进行对应,确认cache server,获取connection进行数据存储

2>memcache的get方法:通过一致性hash算法确认当前客户端对应的cache server的hash值以及要提取数据的hash值,进而确认存储的cache server,获取connection进行数据提取


1>一致性hash算法只是帮我们减少cache集群中的机器数量增减的时候,cache的数据能进行最少重建,只要cache集群的server数量有变化,必然产生数据命中的问题

2>对于数据的分布均衡问题,通过虚拟节点的思想来达到均衡分配,当然,我们cache server节点越少就越需要虚拟节点这个方式来均衡负载

3>我们的cache客户端根本不会维护一个map来记录每个key存储在哪里,都是通过key的hash和cache server(也许ip可以作为参数)的hash计算当前的key应该存储在哪个节点上

4>当我们的cache节点崩溃了,我们必定丢失部分cache数据,并且要根据活着的cache server和key进行新的一致性匹配计算。有可能对部分没有丢失的数据也要做重建

5>至于正常到达数据存储节点,如何找到key对应的数据,那就是cache server本身的内部算法实现了,此处不做描述

你可能感兴趣的:(一致性哈希原理)