1.一致性哈希解决的问题:
普通路由方式通过hash(key)/N来定位数据所在机器Node。哈希一致性通过0~2^32 -1个节点的哈希空间环,按照hash后的节点顺时针找到对应最近的机器Node,并以此确认数据存放机器。新增或者删除机器Node时,普通路由需要通过hash(key)/N-1的方式进行数据的迁移等工作;而哈希一致性算法则只需要移出机器Node,数据依然通过顺时针查找最近的机器Node,实现少量数据的迁移,从而提高集群的性能;
2.一致性哈希面临的问题:
数据热点问题:较少机器(如3台),机器Node可能分布不均,存在单机器数据量太大问题。通过使用虚拟机器Node,将一台机器Node虚拟出N个节点。这样3台机器就对应了3*N的机器Node,解决数据热点问题;
3.算法优化:
集群中出现连续的机器Node失联,导致之前多台机器的数据转移到下一个机器Node上,造成负载不均衡。Amazon的大数据存储平台”Dynamo”使用了一致性哈希,但它并没有使用经典算法,而是使用了故障节点ReHash的思路。将故障机器Node路由到其他机器Node上,从而实现负载均衡。
网友评论