温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,那么各位同学,接下来我们呢,了解完了一致性哈希算法它的三大构建步骤,也明白什么叫这个一致性哈希环了,落点和找寻都清楚,那下面的问题是。一致性哈希算法它的优点和缺点分别是什么?第一个一致性哈希算法,它具备容错性,来,同学们请看一眼。我们呢,先看图吧,按照我们以前岁月静好,绿色的点点,四台red主机,Object abcd4个key,各归其位,各回各家,各找各妈,但是现在C挂了,看到没有,那么换以前这个C,这个K落到这正常情况下它是不是应该存到C,但是对不起,现在我去找,哦,吼,C没了,这他妈坑爹了,那咋怎么办?按照规矩继续往前顺时针移动,它就会存到什么地方去了,定义上面去了,哎,所以说这个时候一致性哈希它这种哈希环它是有容错性的,来假设C宕机了,那么可以看到abd是根本不受影响的,一般的在一致性哈希算法当中,如果一台服务器不可用,则受影响的数据仅仅是此服务器到期闭环空间中的前一台服务器,也就是闭环空间的前一台,说人话就是沿着什么什么针,逆时针。
01:20
遇到的第一台,哎,就是这一段会出问题,OK,受影响的就是这小段数据。因为C没了,以前是要存到C的东西,是暂时取不了了,OK,那么就是B到C这段受到影响,那么其他是不会受影响,简单说就是C挂了,受到影响的只是BC之间的数据,且这些数据会转移到什么D进行存储,好,这是它的容错性,扩张性呢?嗯,不用我多说了吧,数据量增加了ABCD4台机器不够用了怎么办?那么现在杨哥又增加了一台。第五台note X,那么这个是X,假设它就在AB之间,那么这样受到的影响是不是也就是A到X和X?
02:01
A到X之间的数据,那么重新把A到X数据录入到X上面就行。那不会导致哈希取。全部数据重新洗盘,所以它的优点是有容错和扩张,那么是不是比前面的要好很多,那它的缺点呢?同学们思考一下,那么来这有一个东西叫一致性哈希算法的数据倾斜问题容易头重脚轻,情况是这样的,各位亲,一致性哈希算法在服务节点很少,比如说只有AB2个节点,容易因为节点分布不均匀而造成数据倾斜,那么大家都清楚啊,如果落在AB之间,那我就去找B,这从一个,那其他落在B以外呢?是不是全部找顺时针全部找地去了,那么这样的话呢,这个数据倾斜的意思就是被缓存的对象大部分都集中的缓存在某一台服务器上面,那么这个时候。一看就懂了吧,这个A是不是吃成个胖子,那么这个BOK,轻松的不行,那所以说这样不太好,那么这个时候我们做个小总结。就会明白,为了在节点数目发生变化的时候尽可能减少数据的迁移,那么将所有的存储节点排列在首尾相接的首尾相接的这个哈希环上面,那么每个K在计算后顺时针找第一段,那大有节点加入和退出仅仅是影响这一圈,OK那么相邻节点的是吧?注意顺时针后时节点OK,那么。
03:20
这个呢是后面那个,那么优点加入和删除就扩容,缩容的时候只影响哈希环中这个顺时针方向的相邻节点,对其他没有影响,那么缺点数据倾斜,OK,那么这个呢,就是一致性哈希算法它的缺点。
我来说两句