
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
掌握更多的不同编程算法能够让程序员在开发软件的时候可以满足不同的编程开发需求,而本文我们就通过案例分析来简单了解一下,哈希一致性问题分析。
哈希空间和哈希环
现在我们理解了一致性哈希的定义,让我们了解它是如何工作的。假设使用SHA-1作为哈希函数f,哈希函数的输出范围是:x0,x1,x2,x3,...,xn。在密码学中,SHA-1的哈希空间从0到2^160-1。也就是说,x0对应0,xn对应2^160-1,所有其他的哈希值都落在0和2^160-1之间。
哈希服务器
使用相同的哈希函数f,我们根据服务器的IP或名字将服务器映射到环上。
哈希键
值得一提的是,这里使用的哈希函数与“重哈希问题”中的不同,并且没有模运算。
服务器查找
为了确定一个键存储在哪个服务器上,我们从环上的键位置顺时针方向进行寻找,直到找到一个服务器。
添加服务器
使用上述逻辑,添加新服务器只需要重新分配一部分键。
移除服务器
当服务器被移除时,只有少部分的键需要通过一致性哈希进行重新分配。
使用均匀分布的哈希函数将服务器和键映射到环上。
要找出键映射到哪个服务器,从键位置开始顺时针方向找到环上的一个服务器。
这种方法存在两个问题。考虑到服务器可能会被添加或移除,不可能在环上为所有服务器保持相同大小的分区。分区是相邻服务器之间的哈希空间。每个服务器被分配到的环上的分区大小可能非常小或者相当大。
环上的键分布可能非均匀。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。