答疑丨互联网需要解决的技术问题是什么?
李智慧
该思维导图由 AI 生成,仅供参考
目前互联网软件应用可以说是最主流的软件应用了,相应的,互联网分布式架构也成为最主要的系统架构方案。这个模块主要讲的就是互联网架构的一些知识内容,互联网架构技术关键点有很多,我在专栏中也试图在有限的篇幅内尽量多地覆盖这些技术关键点,但是依然有很多关键技术点未能展开讲述,文章中很多思考题其实也都是分布式系统的关键技术点,我在这里再进行一些回顾和补充。
专栏 22 篇分布式缓存架构的思考题
我们讲 Memcached 路由算法讲到余数 Hash 算法,但是,这种算法在 Memcached 服务器集群扩容,也就是增加服务器的时候,会遇到较大的问题,问题是什么呢?应该如何解决?
分布式缓存将多台服务器构建成一个集群,共同对外提供缓存服务,那么应用程序在读写缓存数据的时候,如何知道自己应该访问哪一台服务器呢?答案就是缓存路由算法,通过缓存路由算法计算得到缓存服务器的编号,进而和该服务器通信,读写缓存数据。
比较简单的路由算法就是余数 Hash 算法,利用 key 的 Hash 值对服务器列表长度取模,根据余数就可以确定服务器列表的下标。
比如说,缓存服务器集群中有 3 台服务器,根据 Key 的 Hash 值对 3 取模得到的余数一定在 0、1、2 三个数字之间,每一个数字都对应着一台服务器,根据这个数字查找对应的服务器 IP 地址就可以了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
互联网架构的技术问题是当前互联网软件应用中最主要的挑战之一。分布式缓存架构中的路由算法和一致性Hash算法是关键技术点,解决了服务器扩容时可能出现的缓存无法命中的问题。一致性Hash算法通过构建一致性Hash环和使用虚拟节点,实现了负载均衡和动态扩容的效果。而在数据存储架构中,分布式关系数据库的扩容需要进行数据迁移,通过逻辑数据库进行分片和主从复制的能力,实现了快速、安全地增加服务器以存储更多数据的目的。这些技术点展示了互联网架构中的动态伸缩和负载均衡的关键挑战,为读者提供了对互联网架构技术问题的深入了解。文章还涵盖了互联网应用系统和传统IT系统面对的挑战,包括高并发、高可用性要求、海量数据存储、安全性和持续迭代更新等方面。这些挑战需要通过分布式技术来解决,展示了互联网技术对软件开发与架构设计的重构作用。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《后端技术面试 38 讲》,新⼈⾸单¥59
《后端技术面试 38 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(13)
- 最新
- 精选
- Jagger Chen老师您好,为什么将部分 Schema 迁移到新服务器上就可以了,而不需要修改路由算法?分片不变该如何理解?
作者回复: 分片数就等于schema数,schema部署在哪里不影响路由算法。
2020-07-0521 - 豁豁哒李老师好,图2所示,key0和key3本来在node1节点,现在加入node3节点,那么key0和key3会迁移到实际的node3节点吗?如果不会,那就是说key0和key3两个数据没了
作者回复: 是的。 一致性Hash可以极大减少加入节点带来的缓存不命中,但是不能完全避免。
2020-04-211 - 千米完结理清了老师的思路脉络 学习了 谢谢老师2020-04-027
- escray比较喜欢这种答疑的方式,老师重新梳理了这个模块的内容,并且对留言中的一些问题进行了答复。 极客时间的专栏里面,也有只留思考题,不解答的,管杀不管埋…… 一致性 Hash 算法和分布式数据库分片都是可以拿出一篇文章单独讲的,在这里提纲挈领也挺好的。 “互联网需要解决的技术问题”串联起来了这个部分的全部内容,算是一个很好的知识地图,如何按图索骥就看个人了。2020-10-166
- 算法成瘾者终于找到了 简单易懂,深入浅出讲 一致性哈希算法应用于缓存和数据库的情况👍🏻2022-05-281
- java小霸王按照总结思路即复习了一遍 ,又串联了起来,这就是需要构建的知识树呀2022-07-10
- 追梦非常佩服老师的思路总结2021-01-20
- 黑山老妖老师讲的非常清楚2020-06-15
- LY感觉要学的东西好多,路漫漫其修远兮。。2020-03-28
- LY一致性hash也是面试常考的题2020-03-28
收起评论