写点什么

第 5 周课后总结 - 技术选型一

用户头像
潘涛
关注
发布于: 2021 年 01 月 31 日

第 5 周课后总结-技术选型一

一、余数 Hash

使用余数 Hash 的路由算法,在扩容的时候会造成大量的数据无法正确命中(其实不仅仅是无法命中,那些大量的无法命中的数据还在原缓存中在被移除前占据着内存)。这个结果显然是无法接受的,在网站业务中,大部分的业务数据度操作请求上事实上是通过缓存获取的,只有少量读操作会访问数据库,因此数据库的负载能力是以有缓存为前提而设计的。当大部分被缓存了的数据因为服务器扩容而不能正确读取时,这些数据访问的压力就落在了数据库的身上,这将大大超过数据库的负载能力,严重的可能会导致数据库宕机。

二、一致性哈希算法

一致性哈希算法:先构造一个长度为 232 的整数环(这个环被称为一致性 Hash 环),根据节点名称的 Hash 值(其分布为[0, 232-1])将服务器节点放置在这个 Hash 环上,然后根据数据的 Key 值计算得到其 Hash 值(其分布也为[0, 232-1]),接着在 Hash 环上顺时针查找距离这个 Key 值的 Hash 值最近的服务器节点,完成 Key 到服务器的映射查找。

这种算法解决了普通余数 Hash 算法伸缩性差的问题,可以保证在上线、下线服务器的情况下尽量有多的请求命中原来路由到的服务器。

缺点:存在节点的负载不均衡

三、一致性哈希算法:加虚拟节点

将每一个服务器节点虚拟成 150 个虚拟节点,分布在一致性 hash 环上,使其平均近似分布。解决了节点负载不均衡的问题。

四、算法总结

哈希取余算法扩展性差,一致性哈希环算法解决扩展问题但引入了均衡问题,基于虚拟节点的一致性哈希算法解决均衡问题,影响范围更小,更利于扩展。

参考资料:https://www.cnblogs.com/xrq730/p/4948707.html


用户头像

潘涛

关注

还未添加个人签名 2020.02.25 加入

还未添加个人简介

评论

发布
暂无评论
第5周课后总结-技术选型一