分布式技术原理与算法解析
聂鹏程
智载云帆CTO,前华为分布式Lab资深技术专家
立即订阅
5969 人已学习
课程目录
已更新 36 讲 / 共 34 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 四纵四横,带你透彻理解分布式技术
免费
01 | 分布式缘何而起:从单兵,到游击队,到集团军
02 | 分布式系统的指标:啥是分布式的三围
第一站:分布式协调与同步 (6讲)
03 | 分布式互斥:有你没我,有我没你
04 | 分布式选举:国不可一日无君
05 | 分布式共识:存异求同
06 | 分布式事务:All or nothing
07 | 分布式锁:关键重地,非请勿入
08 | 分布式技术是如何引爆人工智能的?
第二站:分布式资源管理与负载调度 (6讲)
09 | 分布式体系结构之集中式结构:一人在上,万人在下
10 | 分布式体系结构之非集中式结构:众生平等
11 | 分布式调度架构之单体调度:物质文明、精神文明一手抓
12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓
13 | 分布式调度架构之共享状态调度:物质文明、精神文明多手协商抓
14 | 答疑篇:分布式事务与分布式锁相关问题
第三站:分布式计算技术 (4讲)
15 | 分布式计算模式之MR:一门同流合污的艺术
16 | 分布式计算模式之Stream:一门背锅的艺术
17 | 分布式计算模式之Actor:一门甩锅的艺术
18 | 分布式计算模式之流水线:你方唱罢我登场
第四站:分布式通信技术 (4讲)
19 | 分布式通信之远程调用:我是你的千里眼
20 | 分布式通信之发布订阅:送货上门
21 | 分布式通信之消息队列:货物自取
22 | 答疑篇:分布式体系架构与分布式计算相关问题
第五站:分布式数据存储 (5讲)
23 | CAP理论:这顶帽子我不想要
24 | 分布式数据存储系统之三要素:顾客、导购与货架
25 | 数据分布方式之哈希与一致性哈希:“掐指一算”与“掐指两算”的事
26 | 分布式数据复制技术:分身有术
27 | 分布式数据之缓存技术:“身手钥钱”随身带
特别放送 (3讲)
特别放送 | 分布式下的一致性杂谈
特别放送 | 徐志强:学习这件事儿,不到长城非好汉
特别放送 | 那些你不能错过的分布式系统论文
第六站:分布式高可靠 (5讲)
28 | 分布式高可靠之负载均衡:不患寡,而患不均
29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
30 | 分布式高可用之故障隔离:当断不断,反受其乱
31 | 分布式高可用之故障恢复:知错能改,善莫大焉
32 | 答疑篇:如何判断并解决网络分区问题?
分布式技术原理与算法解析
登录|注册

开篇词 | 四纵四横,带你透彻理解分布式技术

聂鹏程 2019-09-23
00:00
10:26
讲述:聂鹏程 大小:9.57M
你好,我是聂鹏程,智载云帆的 CTO。在接下来的三个月时间里,我将带你打卡分布式技术。
在众多计算机技术当中,分布式技术无疑是最璀璨的明珠之一。毫不夸张地说,没有分布式技术就没有互联网,也就没有现在的阿里巴巴、腾讯、亚马逊、Facebook、谷歌等科技巨头,更不会有以信息技术为核心的、对人类历史产生巨大变革的第三次工业革命。万维网、Email、DNS 等,都是分布式系统的典型代表。
随着分布式技术的不断发展,它也早已不再局限于传统的互联网等应用场景。在今年的两会期间,全国政协委员、360 董事长周鸿祎更是大唱 I’M ABCDE 字母歌。IMABCDE 这 7 个字母所代表的 IoT 物联网、Mobile 移动计算、AI 人工智能、Blockchain 区块链、Cloud 云计算、Data 大数据、Edge 边缘计算,也无不都是以分布式技术为基石。
无疑,谁更好地掌握了分布式技术,谁就更容易在新一轮技术浪潮中获得主动。在全球经济增速趋缓的大背景下,与许多应用业务大量裁人形成鲜明对比的是,各大巨头的中间件团队、实验室等基础部门,依然在大规模地招兵买马。随着业务扩展,以及 IMABCDE 等新兴技术领域的布局,分布式技术人才已然成为巨头们争夺的焦点。
一方面是各大厂商的求贤若渴,一方面是分布式专业技术人才的一将难求。在多年的面试中,我经常能体会到,有些面试者确实非常积极主动,但他们表现出来的水平却无法通过面试。分布式技术人才市场的供应与需求,俨然一首冰与火之歌。
2007 年,我在西安电子科技大学攻读博士期间,就开始研究并行与分布式计算;毕业后,在 IBM 做过 HPC 大规模负载管理系统 LSF 相关的设计和研发工作,在华为负责过分布式 IoT 相关项目的架构设计,以及电信级业务微服务框架、函数服务框架的设计工作,也从事过区块链相关的研究工作。现在,我在智载云帆负责技术体系的构建,专注于无服务器 Serverless 的架构实践。
从我深入研究分布式技术这十多年的经验来看,分布式技术概念繁多、知识庞杂、新兴技术层出不穷,令许多新手望而却步,而许多有一定年限工作经验的老手,虽然也能对一些概念滔滔不绝,但追问到实质性问题就变得磕磕巴巴,顾左右而言它。比如:
各种分布式概念、名词学了一大堆,但经常张冠李戴,傻傻分不清楚;
做了多年技术,也参与了很多分布式技术实践,却无法回答工作中各种分布式技术、组件、框架选型背后的根源;
在一个分布式技术配套的典型场景往往能驾轻就熟,但一旦稍微变更考察业务场景、业务目标后,就变得毫无头绪。
究其原因,主要是知识碎片化、不成体系、见树不见林。如果再追究更深层次的原因,那无外乎就是两点:
在计算机学科课程设置中,分布式技术尴尬如同中小学中的性教育,重要但不受重视。鲜有高校在计算机本科专业中设置分布式课程,即便是有些高校在研究生教育中设置了相关课程,也是如同高手过招点到为止。
信息碎片化与信息孤立。在信息泛滥的信息时代,各种经典教材、最新文章自然是唾手可得。但,教材固然经典但严谨有余浅出不够,最重要的是没有与时下最新的场景相结合,一方面是因为教材“年久失修”,另一方面确实是因为分布式领域新技术推出的速度令人叹为观止;而网上的各种技术文章虽然多,却鲜有体系化的说明,一个个概念如同一座座信息孤岛。如果不能体系化地理解这些概念,何谈掌握,更谈不上真正地去综合运用这些知识了。
因为工作太忙,这些年我整体而系统的输出比较少。偶然一次听到任正非的讲话,他提到了基础教育、孩子是一个社会的未来,这让我感触良多。我想,如果说一个社会的未来,离不开朝气蓬勃的孩子们,那么一个行业的兴盛,同样也离不开一个广泛的从业者基础。而我如果能做好分布式通识课这样的一个专栏,既可以对自己这些年的经验做一次系统梳理,温故而知新,又能帮助更多的人系统理解并掌握分布式核心技术,为整个行业的兴盛略尽绵薄之力,何乐而不为呢?
其实,在工作、面试、演讲等多种场合,也经常会有人问我:“聂博士,分布式领域的新概念繁多、各种框架五花八门、各种组件层出不穷,应该如何应对啊?”我回答说:“其实你已经有答案了。”
看着他们满脸疑惑,我笑着问:“RISC 芯片,程序设计中的封装、继承,还有现在提倡的中台战略,它们都在做一件什么事情呢?”他们答道:“莫非是重用?”
我说:“是的,既然指令可以重用,代码可以重用,技术、业务、数据等都可以重用,为什么知识体系不可以呢?学好分布式通识课,掌握了分布式的核心技术、体系,你就会发现很多新技术、新框架、新组件只不过是‘新瓶装旧酒’,将分布式核心技术进行了再包装、再组合,至多也就是做了一点延伸而已。”
那么,分布式通识课究竟该如何学呢?在接下来的三个月时间里,我会遵循以下 4 个思路带着你一起学习。
第一,分布式技术错综复杂,各种技术相互耦合,确实无法简单地像网络等技术一样划分层次,所以我会结合自己多年的积累和思考,首先为你梳理出一个脉络清晰、四纵四横的分布式核心技术知识体系,然后从这个纵横的技术体系中抽取最核心、最普适的技术思想以及概念,结合各种适用场景一一解析。这样的设计,旨在帮助你找到核心知识点,并将这些知识点联系起来,快速形成分布式核心技术的知识网络,从而形成自己的技术判断力,进而规划出自己的技术路线。
第二,从一个熟知的事物出发,进行浅出的讲解,帮助你从已有知识体系扩展到新的知识体系,从而迅速、牢固地掌握分布式技术的核心知识点。
第三,透过表象深入讲解技术本质,而不是 case by case 地讲解,帮助你知其然并知其所以然,真正做到理解与运用时的举一反三。
第四,针对同一分布式问题的不同方法,从多维度、多角度进行对比、分析,方便你在工作中灵活选型,避免重复“造轮子”。你甚至可以综合权衡各种方法的优缺点,提炼发明出新的方法,最终做到活学活用。
讲到这里,你是不是也有点摩拳擦掌、跃跃欲试了呢?“分布式世界这么大,我要去看看!”别慌,请先看完这份技术地图。
首先,按照业务的架构层次栈,我自底向上按照资源、通信、数据与计算的维度,梳理出了 4 个技术层次:分布式资源池化、分布式通信、分布式数据存储与管理、分布式计算。这样的划分符合业务架构设计的一般规律,即“在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务”。另一方面,这样的划分也整合了零散的知识点,具有完备性。
既然横向的 4 个层次都已经完备了,那为什么又多出了 4 个纵向的技术呢?如果我们把横向的 4 个层次比作派生类的话,那么纵向的 4 条技术线应该是它们的基类。因为,在分布式环境下,无论是资源、通信、数据还是计算,都需要去解决协同、调度、追踪高可用,还有部署的问题。因此,我从横向的技术层次中,提炼出分布式协同、分布式调度、分布式追踪与高可用、分布式部署 4 个纵向技术线。由于分布式追踪、分布式部署虽属于支撑技术,但并不会影响业务的构成,因此我不会在本专栏中进行讲解。
最后,如果说现在分布式领域里各种包装出来的、五花八门的新技术,像是令人高不可攀的女神、男神的话,那么这个分布式通识课程中所提炼出来的体系和核心知识点无疑就是女神、男神素颜的样子。我想说,等你看尽素颜,无论是女神、男神也好,还是各种高大上的技术也好,也就不会觉得那么高不可攀了。
既然你已经看到了这里,相信你也看到了学习分布式技术知识的迫切需求,那么不妨请你在留言区做个自我介绍,给我说说你的困惑,也说说你想通过这个专栏收获些什么,这样我后续也可以根据你的情况进行有针对性的讲解。
我是聂鹏程,今天的内容就到这里了,我们下一讲再会。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式技术原理与算法解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(66)

  • 老王的老李头
    想达到的第一个目标就是:在跟别人聊分布式的时候,有话可说,有深度的话可说,有体系深度的话可说。第二个目标就是:在实际的工作中能够运用自己对分布式的理解做出更好的选型,更好的架构,同时让自己更好的进步。今年32岁,我渴望知识,渴望突破,更渴望成长!

    作者回复: 我发现现在技术圈存在一种怪相,很多从业者都觉得做技术就是吃青春饭,甚至一些所谓的大V也在社交媒体上助长这种观念。

    商品市场上从来不缺普通的产品和服务,缺的是有竞争力的、有差异化的产品和服务。我觉得人才和商品是一样的,人才市场上也从不缺普通的求职者,缺的是有竞争力的、有差异化的人才。

    很高兴你没有存在这种技术是吃青春饭的误区!相信只要你肯学习、积极进取,把自己的积累做广做深,没有人能阻止得了你前进和上升的步伐。It's never too late to learn. 加油!

    2019-09-23
    6
    59
  • 颛顼
    之前学过mit的.6.824分布式课,里面主要就是通过读论文,然后做实验来帮助理解分布式系统中的各种理论,但是一个比较大的问题就是缺乏应用场景,理论联系不到实践中,希望这门课能做到第二点的
    2019-09-24
    1
    17
  • 贤蛋蛋
    即将毕业,在阿里实习,遇到了各种各样的中间件,希望能好好学习这门课,把工作学习中的知识构建到自己的体系结构中

    作者回复: 相对同龄人,你无论是履历还是学习意识,都已经赢在起跑线上了!加油!

    2019-09-24
    12
  • Geek_54edc1
    这个知识体系总结的很好啊

    作者回复: 谢谢!宝剑赠英雄,红粉赠佳人!

    2019-09-24
    1
    8
  • allean
    希望通过这个专栏可以入门分布式

    作者回复: 我做这个专栏的初衷就是:通过划重点、寻路线、建体系,帮助更多的人打通分布式技术任督二脉,并提升职业竞争力

    2019-09-23
    8
  • pirlo
    目前工作是做大数据方面的开发,各种技术框架层出不穷,如:spark、flink、hadoop等,想了解其底层的基本知识,希望本课程能学习到这些东西。

    作者回复: 你说的就属于我在文中提到的IMABCDE中的D(Data大数据)的范畴,大数据当然也是以分布式技术为基石,常用的分布式核心技术,比方说分布式数据存储、分布式计算、分布式协同等都会用到。与之相关的技术应用,我也会在后续文章中进行展开讲解。

    2019-09-23
    1
    8
  • 静水流深
    老师,我觉得我很笨,学习啥都很慢,比如有些算法问题,我都仔仔细细的想好多为什么,有时候觉得高手就是太聪明,写得代码那么优秀!别人为什么学得那么快?内心着急,但是我也不甘放弃。

    作者回复: 我们在战场上可以看到非常典型的两种兵种,机枪兵还有狙击兵,一个快一个慢。其实很多时候快是一方面,准又是另一方面!

    积跬步,而终至千里!加油!

    2019-09-28
    3
    7
  • 杜do度
    我想说,等你看尽素颜,无论是女神、男神也好,还是各种高大上的技术也好,也就不会觉得那么高不可攀了。

    ——聂老师是一个有故事的男人!!!

    作者回复: 我觉得你就是传说中的子期: )

    2019-09-25
    7
  • 老男孩
    浮生有梦三千场,穷尽千里诗酒荒,徒把理想倾倒,才见此专栏。相见恨晚啊!

    作者回复: 人生最难的是等待,而最美的是有值得等待的东西!

    2019-09-24
    7
  • 你猜我是不是隋晓宇
    哈哈,分布式的大门向我打开了

    作者回复: God helps those who help themselves. 加油!

    2019-09-23
    7
  • AKA三皮
    工作中使用eureka作为服务注册中心,然后就接触到CAP理论,进而想去理解CP、AP分布式项目的差异,比如zookeeper,etcd,然后又发现必须去了解各种一致性协议,zk的zab,etcd的raft。

    作者回复: 你所关心的这些内容都是本专栏会讲到的,敬请关注后续更新。只要你一直怀揣这种永不止步、积极探索的精神,想不进步都是不可能的!加油!

    2019-09-23
    5
  • 刘福洋
    会Rust和Go的也可以试试来跟着PingCAP这个撸代码课程来做做看哦
    https://github.com/pingcap/talent-plan

    不知咱们这个专栏有没有什么代码作业玩呢?
    2019-09-28
    4
  • Louris
    研究生在读,现在课题组是分布式机器学习系统,希望多了解分布式知识,有个整体概念,方便后面深入学习。

    作者回复: 研究生阶段就有这样的体系化意识实属难能可贵!加油!

    2019-09-24
    4
  • 50包邮解君愁
    小白弱弱问一下:数据挖掘需要吗?比如hadoop,hive,spark

    作者回复: 你说的就属于我在文中提到的IMABCDE中的D(Data大数据)的范畴,大数据当然也是以分布式技术为基石,常用的分布式核心技术,比方说分布式数据存储、分布式计算、分布式协同等都会用到。与之相关的技术应用,我也会在后续文章中进行展开讲解。

    2019-09-23
    4
  • leslie
    现在的系统已经不再是过去/传统的C/S或B/S:面对越来越多的高并发、CAP理论,分布式确实是解决问题的不错方式。
           这就像运维已经发展到AIOPS或SRE了:希望学习中能够补充这块缺陷,把相应的知识梳理起来并适当补充-跟上时代的步伐。
    2019-09-23
    4
  • QQ怪
    好期待老师讲的分布式精髓

    作者回复: 谢谢!我也非常期待能帮助到你!一起加油!

    2019-09-23
    3
  • Cool.liu
    大佬您好,我是做前端的,分布式再我印象中再后端方面更广泛, 我有了解过node 也想学习,但更多掌握的还是前端的, 您看我这类学生可以掌握分布式吗?

    作者回复: 宝剑锋自磨砺出!只要肯学习,积极进取,没有什么能阻挡你进步和上升的步伐!

    我做这个专栏的初衷就是:通过划重点、寻路线、建体系,帮助更多的人打通分布式技术任督二脉,并提升职业竞争力。

    你都已经在做前端,说明你已经有很好的计算机基础了。很高兴你有这种主动学习的意识!加油!

    2019-10-08
    1
    2
  • Quantum
    2pc/paxos/raft...
    etcd/zk...
    分布式调度
    分布式存储
    2019-09-24
    2
  • 每天晒白牙
    老师代码用啥语言呀

    作者回复: 我的《分布式技术原理与算法解析》专栏并没有严格限定语言。其实分布式计算当中,包括微服务在内的很多技术努力在做的事情就是允许语言的多元化。正所谓尺有所短寸有所长,十八般兵器,不一定要样样精通,但如果能代表性的掌握几种,那么当我们面临问题时,肯定会有更好的选择。

    2019-09-23
    2
    2
  • 啦啦啦
    面试的时候让我聊聊分布式,没聊出来,哈哈,希望学完之后可以聊出来,聊的深,虽然我还是小螺丝钉,但还是想学这种总体架构方面的课程,万一以后有机会做架构,我也就能抓住机会了
    2019-10-06
    1
收起评论
66
72
返回
顶部