SERVICE PHONE

363050.com
rukou 哈希交易所官网入口
哈希交易所官网入口__注册登录APP下载一站式服务大厂面试场景题:设计一致性哈希系统

发布时间:2026-02-09 21:38:24  点击量:

  哈希交易所官网入口,哈希交易所注册,哈希交易所登录,哈希交易所下载,哈希交易所APP/哈希交易所官网入口为用户提供官方注册、登录、APP下载与币种交易服务,安全合规,快速充值提现,全面满足数字资产投资需求。

哈希交易所官网入口__注册登录APP下载一站式服务大厂面试场景题:设计一致性哈希系统

  为了实现横向扩展,在服务器之间高效和均匀地分配请求/数据是很重要的。一致性哈希是为了达成这个目标而被广泛使用的技术。首先,我们看一下什么是重新哈希问题。

  我们用一个示例来说明它是如何工作的。如表-1所示,我们有4个服务器,有8个字符串型的键(key)及其对应的哈希值(hash)。

  为了获取存储了某个键的服务器的序号,我们需要做求余运算f(key)%4。比如,hash(key0)%4=1,表示客户端必须联系server1以获取缓存的数据。图-1基于表-1展示了键的分布。

  这个方法在服务器池的大小固定不变的时候效果很好,并且数据的分布是均匀的。但是,当添加服务器或现有服务器被移除时问题就产生了。举个例子,如果server1下线,服务器池的大小就变成3。使用同样的哈希函数,对于同一个键,我们得到的哈希值不变。但是因为服务器数量减1,通过求余操作计算出的服务器序号就与之前的不同了。这可能会导致数据分布不均匀或错误地分配给错误的服务器。“哈希值%3”得到的结果如表-2所示。

  如图-2所示,大部分的键都被重新分配了,不仅仅是原来存储在宕机服务器(server1)中的那些键。这意味着当server1宕机时,大部分缓存客户端都会连接错误的服务器来获取数据。这会导致大量的缓存未命中(Cache Miss)。一致性哈希是缓解这个问题的有效技术。

  根据中的定义,“一致性哈希是一种特殊的哈希。如果一个哈希表被调整了大小,那么使用一致性哈希,则平均只需要重新映射k/n个键,这里k是键的数量,n是槽(Slot)的数量。对比来看,在大多数传统的哈希表中,只要槽的数量有变化,几乎所有的键都需要重新映射一遍”。

  现在我们了解了一致性哈希的定义,接下来看看它是如何工作的。假设我们使用SHA-1作为哈希函数f,哈希函数的输出值范围是:x0,x1,x2,x3,…,xn。在密码学里,SHA-1的哈希空间是0到2160-1。这意味着x0对应0,xn对应2160-1。图-3展示了哈希空间。

  使用同样的哈希函数f,我们根据服务器的IP地址或者名字将其映射到哈希环上。图-5展示了4个服务器被映射到哈希环上的情况。

  值得一提的是,这里使用的哈希函数跟第1节中的不一样,这里没有求余运算。如图-6所示,4个键(key0、key1、key2和key3)被映射到哈希环上。

  为了确定某个键存储在哪个服务器上,我们从这个键在环上的位置开始顺时针查找,直到找到一个服务器为止。图-7解释了这个过程,通过顺时针查找可知:key0存储在server0上;key1存储在server1上;key2存储在server2上;key3存储在server3上。

  按照上面描述的逻辑,如果要在哈希环中添加一个新的服务器,只有少部分键需要被重新映射到新的服务器上,大部分键的位置保持不变。

  如图-8所示,添加新的服务器后(server4),只有key0需要重新分配位置。key1、key2和key3都保留在原来的服务器上。我们仔细看一下这个逻辑。在添加server4之前,key0存储在server0上。现在,因为server4是从key0在哈希环上的位置开始顺时针查找时遇到的第一个服务器,所以key0会被存储到server4上。根据一致性哈希算法,其他的键不需要重新分配位置。

  当一个服务器被移除时,如果使用一致性哈希,就只有一小部分键需要重新分配位置。如图-9所示,当移除server1时,只有key1需要重新映射到server2上,其他键则不受影响。

  一致性哈希算法是麻省理工学院的David Karger等人首先提出的。它的基本步骤如下:

  •要找出某个键被映射到了哪个服务器上,就从这个键的位置开始顺时针查找,直到找到哈希环上的第一个服务器。

  这里有两个问题。第一,考虑到可以添加或移除服务器,所以很难保证哈希环上所有服务器的分区大小相同。分区是相邻服务器之间的哈希空间。在哈希环上分配给每个服务器的分区可能很小,也可能很大。如图-10所示,如果server1被移除,server2的分区(用双向箭头标记)就是server0和server3的两倍大。

  第二,有可能键在哈希环上是非均匀分布的。举个例子,如果服务器映射的位置如图-11所示,则大部分键都会被存储在server2上,而server1和server3上没有数据。

  虚拟节点是实际节点在哈希环上的逻辑划分或映射。每个服务器都可以用多个虚拟节点来表示。如图-12所示,服务器server0和server1都有3个虚拟节点。“3”这个数字是任意选的,在真实世界中,虚拟节点的数量要大得多。这里,我们不用s0而是改用s0_0、s0_1和s0_2来表示哈希环上的server0;用s1_0、s1_1和s1_2来表示哈希环上的server1。通过虚拟节点,每个服务器都对应多个分区。标记为s0的分区(边缘)是由server0来管理的。标记为s1的分区是由server1来管理的。

  为了找到某个键存储在哪个服务器上,我们从这个键所在的位置开始,顺时针找到第一个虚拟节点。如图-13所示,为了确定key0键存储在哪个服务器上,我们从key0所在的位置出发,顺时针查找并找到虚拟节点s1_1,它对应的是server1。

  当虚拟节点的数量增加时,键的分布就会变得更均匀。这是因为有更多虚拟节点以后,标准差会变小,从而导致数据分布更均匀。标准差衡量的是数据的分散程度。一个线上研究[插图]所做的实验显示:使用100个或200个虚拟节点时,标准差的均值约为10%(100个虚拟节点)和5%(200个虚拟节点)。当我们增加虚拟节点的数量时,标准差会更小。但是,这也意味着需要更多的空间来存储虚拟节点的数据。这需要权衡,我们可以调整虚拟节点的数量来满足系统的需求。

  当添加或移除服务器时,有一部分键需要重新分配位置。如何找到受影响的键的范围并重新为它们分配位置呢?

  如图-14所示,服务器server4被添加到哈希环上。从server4(新添加的节点)开始,沿着哈希环逆时针移动,直到遇到另一个服务器(图中为server3)为止,这就是受影响的键的范围。从图5-14可以看出,位于server3和server4之间的键需要重新分配给server4。

  如图-15所示,服务器server1被移除。从server1(被移除的节点)开始,沿着哈希环逆时针移动,直到遇到另一个服务器(图中为server0)为止,这就是受影响的键的范围。从图-15可以看出,位于server0和server1之间的键需要重新分配给server2。

  在本章中,我们对一致性哈希进行了深入的讨论,包括为什么需要进行一致性哈希和它是怎么工作的。一致性哈希有如下好处:

  •减轻了热点键问题。过多访问一个特定分区可能会导致服务器过载。想象一下,如果Katy Perry、Justin Bieber和Lady Gaga的数据都被存储在同一个分区上会是什么情形。一致性哈希通过使数据更均匀地分布来减轻这个问题。

  一致性哈希被广泛地应用于现实世界的系统中,包括一些非常出名的系统,例如:

  2月4日下午浙江杭州公安接到王女士报警电话那头声音颤抖:“我被骗了600万元钱转出去快3小时了”原来从事外贸生意的王女士常用WhatsApp与客户联系就在前一天她收到一条“账户异常需验证”的信息未加细想便点击通过这实则是骗子异地登录其账号的“授权验证”登录后骗子迅速分析聊天记录锁

  据环球网援引日本广播协会报道,因众议院选举失利,日本主要在野党中道改革联合两名共同代表野田佳彦、齐藤铁夫9日宣布引咎辞职。最新计票结果,在8日举行的日本众议院选举中,由自民党和日本维新会组成的执政联盟获得过半数议席。

  2月9日,据湖南省纪委监委消息,春节将至,为持续巩固中央八项规定精神学习教育成果,释放全面从严、一严到底的强烈信号,将全省纪检监察机关2025年查处的8起违反中央八项规定精神典型问题进行通报。

  日本众院选举自民党压倒性大胜,外交部:本次选举反映的动向值得国际社会深思

  外交部发言人林剑2月9日主持例行记者会。日本共同社:日本大选中,日本自民党获得压倒性胜利,高市早苗得以继续执政。中方希望高市早苗新政府奉行怎样的外交政策?

  据新华社消息,在2月8日举行的日本众议院选举中,由自民党和日本维新会组成的执政联盟获得过半数议席。外交部发言人林剑2月9日在例行记者会上回答有关提问时表示,选举是日本的国内事务,但本次选举反映的一些深层次、结构性问题以及思潮、动向、趋势,值得日本各界有识之士和国际社会深思。

  每口成本仅19元的普通锅具、每套成本仅32元的菜刀......这些用低成本在网上买来的厨房用具,竟被几名年轻人包装成售价698元、具备“神奇养生功效”的“高科技产品”,骗了300多名老年人。这起案件的曝光,给老年群体提了醒,也给其家中子女敲响了警钟。

  因为苏翊鸣、谷爱凌以及由徐梦桃和齐广璞领衔的中国自由式滑雪空中技巧队的比赛,都一头扎进了阿尔卑斯山区里的利维尼奥小镇,所以后者于近期名声大噪。但其实,利维尼奥就是一个常住人口不足7000、仅拥有一条真正意义主干道的滑雪小镇。

  日本前首相石破茂告诫高市早苗:众议院选举胜利不代表“你可以想做什么就做什么”

  据环球网援引日本山阴中央电视台报道,日本众议院选举结束后,日本前首相石破茂在接受该媒体采访时告诫高市早苗,自民党在众议院选举中取得胜利,并不代表着“你可以想做什么就做什么”。

  菲律宾每年都会在南海搞点小动作,2026年开年以来,全球的目标都聚焦在拉美地区,主要是特朗普先是抓走马杜罗,又要抢夺格陵兰岛。本以为南海会消停点,没想到菲律宾又跳出来了。

  当前国际金价在4750到5000美元关口剧烈震荡,其单日波动幅度超过100美元,已经成为大家“习以为常的新常态”。

地址:363050.com  电话:363050.com 手机:363050.com
Copyright © 2012-2025 哈希交易所官网 版权所有 非商用版本 ICP备案编: