查看原文
其他

分布式一致性协议与算法:没你想的那么简单

试验年代 Linux云计算网络 2021-12-21

身为后端工程师,你对这类招聘要求肯定不陌生:熟悉分布式系统的设计和应用;熟悉分布式、缓存、消息、搜索等机制;对分布式常用技术进行合理应用、解决问题等等。

 

而这其中,又以分布式协议与算法尤甚。很多大公司在招聘架构师或高级工程师时,都要求熟悉分布式协议与算法。面试官不仅要考察原理和运行机制,还有面试者对这类问题在架构设计层面的理解,以及具体场景下的应用。

 

但讲真,以我作为面试官的经验看,真正搞懂这部分的候选人少之又少

 

其实,分布式协议与算法(下面简称分布式算法)是分布式系统运行的核心规则和关键步骤,想参透分布式技术、开发一个分布式系统,最先要掌握的就是这部分知识

 

以 InfluxDB 为例,很多技术团队试图自己实现 InfluxDB 的集群功能,但最终都放弃了。因为这里面的坑实在太多,甚至有些人错误地将一致性等同于完整性,该使用反熵(Anti-Entropy)算法时,却用了 Raft 算法,也是够了。

 

如果你要使用集群功能,又做不到基于开源版本自研,就只能购买人家的企业版。要知道,企业版每个节点的 License 授权费就要 1.5 万美刀/年,具体贵在哪?它的护城河就是以分布式算法为核心的分布式集群能力

 

由此可见,真正掌握分布式算法的人并不多。大多数人只是会用分布式系统,却并不具备分布式系统的独立开发能力。

 

所以,不论是基于工作需要,还是想寻求长期职业发展、提升职场竞争力,分布式算法作为分布式系统的核心,都是你在这个时代应该掌握的基本功。


如何高效学习分布式算法?


如果你留心观察,会发现有不少人看了很多资料和书籍,涉及到具体问题,照样一头雾水,比如:


•  众多开源软件看着都很厉害,事务型、一致性、最终一致性,哪个最适合自己的业务,又该如何选型呢?

•  想要实现数据副本的一致性,到底该选 Paxos 算法,还是 Raft 算法呢?

•  为什么我的集群接入性能低?稍微出现峰值流量,为什么业务就基本不可用了?

•  如何设计分布式系统架构呢?那么多算法,Paxos、Raft、Gossip、Nuorum NWR、PBFT 等等,究竟该选择哪个?

 

其实,算法本身相对抽象,即使是非常经典的论文,也有一些关键细节没有交代清楚。网上的信息大多是“复制粘贴”的结果,甚至有不少错误,给自主学习带来了很多障碍和误导。

 

在我看来,要掌握这部分内容,不仅要理解常用算法的原理、特点和局限性,还要根据场景特点选择适合的分布式算法

 

刚好,极客时间上线了一个新专栏《分布式协议与算法实战》,作者是腾讯资深工程师韩健,我有幸提前看到了一部分内容,很想推荐给你。

 

在专栏中,他分享了自己支撑海量互联网服务中的分布式算法实战心得,让你学完就能在工作中根据场景特点,灵活地设计架构和运用分布式算法,开发出适合该场景的分布式系统。与此同时,你对架构设计的理解,也会更上一层楼。

 

👆扫码免费试读

结算时输入优惠口令「fenbushi6」到手仅 ¥50

仅限【前 200 个】名额有效


韩健是谁?


上面也提到了,韩健是腾讯资深工程师。

 

从重庆大学的软件工程专业毕业后,他就开始和分布式系统打交道,至今有 10 多年了。早期,他接触了电信级分布式系统,比如内核态 HA Cluster,现在是互联网分布式系统,比如名字服务、NoSQL 存储、监控大数平台等。

 

他做过创业公司的 CTO。加入腾讯后,曾负责 QQ 后台海量服务分布式中间件,现致力于时序数据库 InfluxDB 自研集群系统的架构设计和研发工作。


他是如何讲解分布式算法的?


他将整个专栏划分成三大模块:

 

第一,理论篇,讲解分布式架构设计的核心理论,让你学完就能落地实践。其中,涉及典型的分布式问题,分布式系统中的相互矛盾特性等,帮你在实战中根据场景特点选择适合的分布式算法。

 

第二,协议和算法篇,重点讲解其原理、特点、适用场景和常见误区。比如,你以为开发分布式系统使用 Raft 算法就足够了,其实它更适合性能要求不高的强一致性场景;又比如类似“Paxos 和 Raft 的区别在哪里”等常见面试题,你都会在这部分找到答案。

 

第三,实战篇,让你掌握分布式基础理论和分布式算法在工程实践中的应用。比如,剖析 InfluxDB 企业版的 CP 架构和 AP 架构的设计,以及 Raft、Quorum NWR、Anti-Entropy 等分布式算法的具体实现。

 

我仔细看了下,学完实战篇,你就真正了解如何根据场景特点选择适合的分布式算法,以及使用分布式算法的实战技巧。这样,才能根据工作中的实际情况举一反三,独立思考、设计和开发。

 

除此之外,他还专门剖析了 Hashicorp Raft 的实现,并以一个分布式 KV 系统的开发实战为例,带你用 Raft 算法开发一个分布式系统,让你全面掌握分布式算法的实战能力。

 

说了这么多,是时候看看目录了。

              

写在最后


疫情虽严重,时间却是自己的。大部分人的状态:有时间的时候不学,没时间的时候又抱怨太忙。不如趁这段时间,做一些真正提升自己的事情。

专栏刚上线,早鸟优惠 ¥55,结算时输入优惠口令「fenbushi6」再减 5 元,到手仅 50 元,口令仅限【前 200 个】名额有效。

 

另外,订阅了专栏,还能领取作者整理的高清「分布式协议与算法实战」知识图谱,获取方式:公众号后台回复关键字「分布式」。

👇扫码订阅👇


           

口令「fenbushi6」仅限前 200 人有效。

👇点「阅读原文」立即使用,以最低价¥50入手。

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存