什么是Hash?
hash就是把任意长度的输入(又叫做预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值。
一致性hash?
一致性哈希是一种哈希算法:在移除或添加一个结点时,它能够尽可能小地改变已存在key的映射关系。
几个服务器一起工作,其中一个坏掉怎么处理?
基本思想:使用相同的哈希算法将数据和结点都映射到环形哈希空间中。
1.把数据映射到Hash空间;
2.把结点映射到哈希空间:此处的结点就是服务器;
3.把数据映射到结点(顺时针或者逆时针)。
移除结点:
假如nodeB出现问题,根据映射方法,这时受影响的将仅是那些沿nodeB逆时针遍历直到下一个node(假设为nodeA)之间的数据,即本来映射到nodeB上的那些数据。因此这里仅需要变动数据将其重新映射到nodeC上即可。
虚拟结点:
虚拟结点是实际结点在哈希空间的复制品,一个实际结点对应了若干虚拟结点,虚拟结点在哈希空间中以哈希值排列。虚拟结点的使用是为了解决分布不平衡而设计的。
Hash与Hash一致性
最新推荐文章于 2024-11-12 12:29:51 发布
本文介绍了哈希的基本概念,并深入探讨了一致性哈希算法的工作原理。一致性哈希能有效减少服务器增删时的数据迁移量,通过引入虚拟节点进一步优化负载均衡。文章详细解释了如何通过一致性哈希解决服务器故障时的数据映射问题。
摘要由CSDN通过智能技术生成