你将获得
- 可落地的 4 大分布式基础理论;
- 8 个最常用的分布式协议和算法;
- 3 大实战案例手把手教学;
- 以实战为中心的分布式内容体系。
课程介绍
在这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。
可分布式不是一两句话就能说清楚的,分布式架构、分布式存储、分布式中间件、分布式应用等等这些名词背后都会涉及一连串的技术,如果你不分主次,挨个去学习这些技术,肯定会疲惫不堪,得不偿失。
那么换个角度,又有哪些知识是分布式领域的基石呢?
如果你参与设计过分布式系统的话,应该不难理解这样一句话:分布式系统里最重要或者最核心的事情就是如何选择或设计适合的算法,以解决一致性和可用性相关的问题。 这正是本专栏的设计初衷,虽然分布式领域的知识繁杂且抽象,但我们希望能够带你搞定其中最核心、最难啃的算法和协议部分。
在韩健看来,分布式协议和算法是决定分布式系统如何运行的核心规则和关键步骤,是每一个工程师都应该具备的硬核知识。但与此同时,又因着算法本身比较抽象、知识碎片化、信息不准确等原因,提高了掌握这部分知识的门槛,
在这个专栏中,作者将自己多年来,支撑海量互联网服务中的分布式协议和算法的实战心得凝结成 20 篇文章。从理论到算法再到实战,带你建立学习信心,一步步将核心的算法深化为自己的知识体系,逐渐攻克分布式系统设计的关键难题。
理论篇: 将会为你讲解分布式架构设计的核心理论,让你学完就能落地实践。比如,如何根据场景特点进行 CAP 的权衡,是选择 CP 架构或者 AP 架构?如何使用二阶段提交协议和 TCC,实现分布式系统的 ACID 特性?
协议和算法篇: 是关键重点,这里会重点讲解具体协议和算法的原理、特点、适用场景和常见误区。比如,你以为开发分布式系统使用 Raft 算法就足够了,其实它更适合性能要求不高的强一致性场景;又比如类似“Paxos 和 Raft 的区别在哪里”等常见面试题,你都会在这部分找到答案。
实战篇:主要帮你掌握分布式基础理论和分布式算法在工程实践中的应用。比如,剖析 InfluxDB 企业版的 CP 架构和 AP 架构的设计,以及 Raft、Quorum NWR、Anti-Entropy 等分布式算法的具体实现。
课程目录
├── 00丨开篇词 (1讲)/
│ ├── 00丨开篇词丨想成为分布式高手?那就先把协议和算法烂熟于心吧.html
│ ├── 00丨开篇词丨想成为分布式高手?那就先把协议和算法烂熟于心吧.m4a
│ └── 00丨开篇词丨想成为分布式高手?那就先把协议和算法烂熟于心吧.pdf
├── 01丨理论篇 (4讲)/
│ ├── 01丨拜占庭将军问题:有叛徒的情况下,如何才能达成共识?.html
│ ├── 01丨拜占庭将军问题:有叛徒的情况下,如何才能达成共识?.m4a
│ ├── 01丨拜占庭将军问题:有叛徒的情况下,如何才能达成共识?.pdf
│ ├── 02丨CAP理论:分布式系统的PH试纸,用它来测酸碱度.html
│ ├── 02丨CAP理论:分布式系统的PH试纸,用它来测酸碱度.m4a
│ ├── 02丨CAP理论:分布式系统的PH试纸,用它来测酸碱度.pdf
│ ├── 03丨ACID理论:CAP的酸,追求一致性.html
│ ├── 03丨ACID理论:CAP的酸,追求一致性.m4a
│ ├── 03丨ACID理论:CAP的酸,追求一致性.pdf
│ ├── 04丨BASE理论:CAP的碱,追求可用性.html
│ ├── 04丨BASE理论:CAP的碱,追求可用性.m4a
│ └── 04丨BASE理论:CAP的碱,追求可用性.pdf
├── 02丨协议和算法篇 (11讲)/
│ ├── 05丨Paxos算法(一):如何在多个节点间确定某变量的值?.html
│ ├── 05丨Paxos算法(一):如何在多个节点间确定某变量的值?.m4a
│ ├── 05丨Paxos算法(一):如何在多个节点间确定某变量的值?.pdf
│ ├── 06丨Paxos算法(二):Multi-Paxos不是一个算法,而是统称.html
│ ├── 06丨Paxos算法(二):Multi-Paxos不是一个算法,而是统称.m4a
│ ├── 06丨Paxos算法(二):Multi-Paxos不是一个算法,而是统称.pdf
│ ├── 07丨Raft算法(一):如何选举领导者?.html
│ ├── 07丨Raft算法(一):如何选举领导者?.m4a
│ ├── 07丨Raft算法(一):如何选举领导者?.pdf
│ ├── 08丨Raft算法(二):如何复制日志?.html
│ ├── 08丨Raft算法(二):如何复制日志?.m4a
│ ├── 08丨Raft算法(二):如何复制日志?.pdf
│ ├── 09丨Raft算法(三):如何解决成员变更的问题?.html
│ ├── 09丨Raft算法(三):如何解决成员变更的问题?.m4a
│ ├── 09丨Raft算法(三):如何解决成员变更的问题?.pdf
│ ├── 10丨一致哈希算法:如何分群,突破集群的“领导者”限制?.html
│ ├── 10丨一致哈希算法:如何分群,突破集群的“领导者”限制?.m4a
│ ├── 10丨一致哈希算法:如何分群,突破集群的“领导者”限制?.pdf
│ ├── 11丨Gossip协议:流言蜚语,原来也可以实现一致性.html
│ ├── 11丨Gossip协议:流言蜚语,原来也可以实现一致性.m4a
│ ├── 11丨Gossip协议:流言蜚语,原来也可以实现一致性.pdf
│ ├── 12丨QuorumNWR算法:想要灵活地自定义一致性,没问题!.html
│ ├── 12丨QuorumNWR算法:想要灵活地自定义一致性,没问题!.m4a
│ ├── 12丨QuorumNWR算法:想要灵活地自定义一致性,没问题!.pdf
│ ├── 13丨PBFT算法:有人作恶,如何达成共识?.html
│ ├── 13丨PBFT算法:有人作恶,如何达成共识?.m4a
│ ├── 13丨PBFT算法:有人作恶,如何达成共识?.pdf
│ ├── 14丨PoW算法:有办法黑比特币吗?.html
│ ├── 14丨PoW算法:有办法黑比特币吗?.m4a
│ ├── 14丨PoW算法:有办法黑比特币吗?.pdf
│ ├── 15丨ZAB协议:如何实现操作的顺序性?.html
│ ├── 15丨ZAB协议:如何实现操作的顺序性?.m4a
│ └── 15丨ZAB协议:如何实现操作的顺序性?.pdf
├── 03丨实战篇 (6讲)/
│ ├── 16丨InfluxDB企业版一致性实现剖析:他山之石,可以攻玉.html
│ ├── 16丨InfluxDB企业版一致性实现剖析:他山之石,可以攻玉.m4a
│ ├── 16丨InfluxDB企业版一致性实现剖析:他山之石,可以攻玉.pdf
│ ├── 17丨Hashicorp Raft(一):如何跨过理论和代码之间的鸿沟?.html
│ ├── 17丨Hashicorp Raft(一):如何跨过理论和代码之间的鸿沟?.pdf
│ ├── 17丨HashicorpRaft(一):如何跨过理论和代码之间的鸿沟?.m4a
│ ├── 18丨Hashicorp Raft(二):如何以“集群节点”为中心使用API?.html
│ ├── 18丨Hashicorp Raft(二):如何以“集群节点”为中心使用API?.pdf
│ ├── 18丨HashicorpRaft(二):如何以“集群节点”为中心使用API?.m4a
│ ├── 19丨基于Raft的分布式KV系统开发实战(一):如何设计架构?.html
│ ├── 19丨基于Raft的分布式KV系统开发实战(一):如何设计架构?.m4a
│ ├── 19丨基于Raft的分布式KV系统开发实战(一):如何设计架构?.pdf
│ ├── 20丨基于Raft的分布式KV系统开发实战(二):如何实现代码?.html
│ ├── 20丨基于Raft的分布式KV系统开发实战(二):如何实现代码?.m4a
│ ├── 20丨基于Raft的分布式KV系统开发实战(二):如何实现代码?.pdf
│ ├── 加餐丨拜占庭将军问题:如何基于签名消息实现作战计划的一致性?.html
│ ├── 加餐丨拜占庭将军问题:如何基于签名消息实现作战计划的一致性?.m4a
│ └── 加餐丨拜占庭将军问题:如何基于签名消息实现作战计划的一致性?.pdf
├── 04丨结束语 (1讲)/
│ ├── 结束语丨静下心来,享受技术的乐趣.html
│ ├── 结束语丨静下心来,享受技术的乐趣.m4a
│ └── 结束语丨静下心来,享受技术的乐趣.pdf
免责声明:
评论0