01|导读:以前因后果为脉络,串起网状知识体系
陈现麟
该思维导图由 AI 生成,仅供参考
你好,我是陈现麟。
在我们正式学习整个专栏之前,我特别设计了这个导读环节,让你在正式学习之前先拿到一份导航地图。
在开篇词里,我提到了我曾经参加过知乎圆桌会议,回答了“如何系统性地学习分布式系统”这个问题。在这节课的导读内容里,我会结合知乎中的回答,进一步提炼出分布式系统前因后果中的核心问题,帮你追本溯源,理清这个专栏的设计思路,总结深入学习的方法和路径。
学完这节课以后,你不仅能对课程思路心中有数,还能知道如何推导出一门技术的脉络,学会将零散的知识点连成网状的知识体系。
前因:分布式系统解决了什么问题
学习一个知识之前,我觉得比较好的方式是先理解它的前因后果:前因就是这个知识产生的过程中,它解决了什么问题,怎么样解决的。后果就是它的出现又带来了哪些新的问题,这样我们才能比较好地抓到它的脉络和关键点,不会一开始就迷失在细节中。
所以,学习分布式之前,我们要解决的第一个问题就是:分布式系统解决了什么问题,怎么样解决的?分布式系统的出现主要解决的是单体系统方面的不足,下面我们就具体来分析一下。
首先,分布式系统解决了单机性能瓶颈导致的成本问题。由于摩尔定律失效,廉价 PC 机的性能瓶颈无法继续突破,虽然小型机和大型机能实现更高的单机性能,但是成本太高,一般的公司很难承受。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了分布式系统的重要性和内部工作节点的协调问题。作者首先强调了理解技术前因后果的重要性,详细阐述了分布式系统解决了单机系统面临的成本、效率和高可用问题的重要性。文章还强调了分布式系统在不同业务场景中的表现形式,如微服务架构、缓存的分布式化、操作系统的分布式进化以及数据库分布式化等。此外,还介绍了分布式存储的内部协调方式,包括 CAP 理论、数据分片、数据复制和分布式事务。最后,文章提出了从实践和理论两个方面进行系统地学习分布式系统的建议,以及总结了分布式系统内部工作节点协调问题的三类问题,为读者提供了全面的学习指导。整体而言,本文通过深入浅出的方式,为读者提供了分布式系统的发展历程、解决的问题以及在不同业务场景中的应用形式,为读者打开了分布式系统的知识大门。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》,新⼈⾸单¥59
《深入浅出分布式技术原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- 努力努力再努力今日学习收获: 1. 看东西 要思考 1.1 解决了什么问题 1.2 怎么样解决的 1.3 他的出现 带来了 哪些新的问题 2. 分布式系统 解决了 成本、效率和高可用问题 3 分布式系统 带来了什么问题 3.1 无状态 内部工作节点的协调问题 3.1.1 怎么找到服务 3.1.2 怎么找到实例的 3.1.3 怎么管理配置? 配置中心 3.1.4 怎么进行协同? 分布式锁 3.1.5 怎么确保请求只执行一次? 重试+ 幂等 3.1.6 怎么避免雪崩? (快速失败和降级。 一致性要求高的不能用 / 弹性扩容机制) 3.1.7 怎么监控报警和故障恢复? 3.2 有状态的内部协调怎么做? 3.2.1 怎么做数据分片? Hash 和 Region 分片的策略 3.2.2 怎么做数据复制? 3.2.2.1 中心化方案(主从复制、一致性协议,比如 Raft 和 Paxos 等) 3.2.2.2 去中心化的方案( Quorum 和 Vector Clock) 3.2.3 怎么做分布式事务?参考 Google 的 Spanner ,它是通过 GPS 和原子钟,实现 TrueTime API 来解决这个问题,从而实现全球分布式数据库的 3.2.4 1. 我之前是写业务的,负责线上维护,有问题了,会带着问题 看源码,感觉这种 学习方法不错的 2. 你在学习、工作中遇到的具体问题和困惑: 其实就是 老师说的 感觉花的时间很多,但是事倍功半。。。源码和脑图 整理过不少,也尝试自己写组件 (其实是 各种借鉴哈哈 最近在看Nacos2.x)还是有一丝迷茫 之后需要实践: 1. 参考 Google 的 Spanner
作者回复: 非常赞!
2022-01-24225 - 良记看完导读之后,我有预感这个专栏将会是我2022最喜欢发专栏之一。
作者回复: 谢谢😄
2022-02-1212 - 雾都特别喜欢这种提纲挈领的课程,给老师点赞
作者回复: 哈哈,多谢多谢
2022-02-165 - 苜蓿°最后整理的思维图太棒了
作者回复: 多谢😀
2022-03-012 - Hello,Tomrrow老师的文稿的思维好清晰。现有的技术方案无法满足业务的发展,矛盾下催生了新的解决问题的思路,在新思路的指导下,进行不同纬度的方法探索、实践、总结。当然,所有新方法都不是银弹,我们还会面对新方法引发的问题,就这样:问题-解决问题-新问题…推动不断创新进步
作者回复: 是的,你的理解也非常正确👍
2022-03-261 - 乐天分布式系统主要解决单机的高可用和性能问题,那研究分布式系统,也可以从高可用、水平扩展、容错性几方面来学习。 高可用,简单说就是服务冗余,坏了一个还有备份的,主备、主从、分布式就是提高高可用。 水平扩展,还是要提供冗余服务。服务注册和发现、配置管理都是为了方便水平扩展。 容错,就是发送故障时还能正常运行。降级、熔断、限流都是容错的手段。
作者回复: 👍👍
2022-03-101 - Frank请问下服务发现里面讲的AP,CP系统是指什么呢?
作者回复: 先举一个最简单的 CP 系统: 假设有一个存储系统的数据有 3 个副本,每一次写入操作都需要 3 个副本都返回成功(不考虑读的一致性问题),这个系统就是 CP 系统。 另外,我们比较常见的 CP 系统有 etcd
2022-02-071 - Jxin总结下我的理解 1.分布式架构的目标是使用多个独立的服务器,来共同构建一个更大型的系统。(这是一个物理上的架构) 2.单体架构/soa/微服务架构都可以采用分布式架构来实现物理上的部署。 疑问: 3.如果是单体架构系统采用分布式架构部署。其实没有找服务/分布式事务/配置管理等等的问题。那为什么又称这些问题为分布式问题,而不是微服务问题soa问题呢?
作者回复: 微服务或者 SOA 是分布式架构的一种实现形式
2022-01-2621 - 阿甘确切来说,分布式计算指的是一个大任务被拆分成多个小任务执行,而不是微服务架构服务注册/发现以及服务间调用这类场景。常见的分布式计算框架有hadoop,spark, tf等。
作者回复: 专栏在开篇词中定了一个范围,主要讨论的对象在线业务分布式系统,这个普遍来说也是工程师最熟悉的领域,后面也不排除扩展到大数据计算和存储相关的领域~
2022-01-261 - 牛不才路由问题、共识问题、运维问题。总结的很好
作者回复: 😃😃
2022-04-03
收起评论