韩健,腾讯资深工程师,主要负责监控大数据平台的研发工作,从业十余年,他一直在跟分布式系统打交道,负责过QQ 后台海量服务分布式中间件,以及时序数据库 InfluxDB 自研集群系统的架构设计和研发工作。
在这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。
可分布式不是一两句话就能说清楚的,分布式架构、分布式存储、分布式中间件、分布式应用等等这些名词背后都会涉及一连串的技术,如果你不分主次,挨个去学习这些技术,肯定会疲惫不堪,得不偿失。
那么换个角度,又有哪些知识是分布式领域的基石呢?
如果你参与设计过分布式系统的话,应该不难理解这样一句话:分布式系统里最重要或者最核心的事情就是如何选择或设计适合的算法,以解决一致性和可用性相关的问题。 这正是本专栏的设计初衷,虽然分布式领域的知识繁杂且抽象,但我们希望能够带你搞定其中最核心、最难啃的算法和协议部分。
在韩健看来,分布式协议和算法是决定分布式系统如何运行的核心规则和关键步骤,是每一个工程师都应该具备的硬核知识。但与此同时,又因着算法本身比较抽象、知识碎片化、信息不准确等原因,提高了掌握这部分知识的门槛,
在这个专栏中,作者将自己多年来,支撑海量互联网服务中的分布式协议和算法的实战心得凝结成20篇文章。从理论到算法再到实战,带你建立学习信心,一步步将核心的算法深化为自己的知识体系,逐渐攻克分布式系统设计的关键难题。
理论篇: 将会为你讲解分布式架构设计的核心理论,让你学完就能落地实践。比如,如何根据场景特点进行CAP的权衡,是选择CP架构或者AP架构?如何使用二阶段提交协议和TCC,实现分布式系统的ACID特性?
协议和算法篇: 是关键重点,这里会重点讲解具体协议和算法的原理、特点、适用场景和常见误区。比如,你以为开发分布式系统使用 Raft 算法就足够了,其实它更适合性能要求不高的强一致性场景;又比如类似“Paxos 和 Raft 的区别在哪里”等常见面试题,你都会在这部分找到答案。
实战篇:主要帮你掌握分布式基础理论和分布式算法在工程实践中的应用。比如,剖析 InfluxDB 企业版的 CP 架构和 AP 架构的设计,以及 Raft、Quorum NWR、Anti-Entropy 等分布式算法的具体实现。