写点什么

分布式一致性协议与算法:拿下它,解决分布式系统 80% 核心问题 | 极客时间

  • 2020-02-12
  • 本文字数:2000 字

    阅读完需:约 7 分钟

分布式一致性协议与算法:拿下它,解决分布式系统 80% 核心问题 | 极客时间

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


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


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


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


以时序数据库 InfluxDB 为例,很多技术团队试图自己实现 InfluxDB 的集群功能,但最终都放弃了。因为这里面的坑实在太多,甚至还有些人在接入性能敏感的场景,该使用反熵(Anti-Entropy)算法的时候,却用了 Raft 算法,使得集群性能约等同于单机。


如果你想使用集群功能,又无法基于开源版本自研,就只能购买人家的企业版。要知道,企业版每个节点的 License 授权费就要 1.5 万美刀/年,具体贵在哪呢?相比于已经开源的单机版本,其技术壁垒又是什么?


其实,它的护城河就是以分布式算法为核心的分布式集群能力。由此可见,真正掌握分布式算法的人并不多。大多数人只是会用分布式系统,却并不具备分布式系统的独立开发能力。


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

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

很多同学会发现,尽管看了很多资料和书籍,一旦涉及到具体问题,仍旧一头雾水:


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

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

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

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


其实,算法本身相对抽象,即使是非常经典的论文,也有一些关键细节没有交代清楚。


网上的信息大多是“复制粘贴”的结果,甚至有不少错误,给自主学习带来了很多障碍和误导。


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


为了帮你彻底拿下分布式技术,理解其中最核心和最为精妙的内容,我跟极客时间合作了专栏《分布式协议与算法实战》,力求将自己支撑海量互联网服务中的分布式算法实战心得全部分享给你,让你真正拿下这场攻坚战。


再具体一点说,就是能在工作中根据场景特点,灵活地设计架构和运用分布式算法,开发出适合该场景的分布式系统,对架构设计的理解更上一层楼。

我是谁?

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


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

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

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


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


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


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


通过实战篇的学习,你可以了解如何根据场景特点选择适合的分布式算法,以及使用分布式算法的实战技巧。这样,你就可以根据工作中的实际情况举一反三,独立思考、设计开发了。


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


总体来说,学完这个专栏,你会有 4 个收获


  1. 可落地的 4 大分布式基础理论;

  2. 8 个最常用的分布式协议和算法;

  3. 3 大实战案例手把手教学;

  4. 以实战为中心的分布式内容体系。

现在订阅有什么福利?

1.早鸟优惠 ¥55,原价 ¥68。结算时,输入优惠口令「fenbushi6」再减 5 元,到手仅 50 元,口令仅限【前 200 个名额】有效,戳此抢购


2.订阅专栏后,生成分享海报,每成功邀请 1 位好友订阅,可得 ¥18 返现。


2020-02-12 15:294780

评论

发布
暂无评论
发现更多内容

银行业上云进行时,OLAP 云服务如何解决传统数仓之痛?

Kyligence

OLAP技术 传统数仓

2022Q4手机银行运营亮点:“新版本迭代潮”叠加“个人养老金账户争夺战”

易观分析

金融 银行 经济

实现一个简单的Database10(译文)

GreatSQL

sqlite myslq greatsql greatsql社区

一文盘点,ZBC的应用场景与通缩场景

鳄鱼视界

OneFlow源码解析:Eager模式下的SBP Signature推导

OneFlow

人工智能 深度学习 框架解析

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器

BlockChain先知

【Redis 故障排查】「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案

码界西柚

redis 性能调优 缓存服务 2月日更

中国工商银行签约易观千帆,夯实数字基石,助力用户价值增长

易观分析

金融 银行

用这4招优雅的实现Spring Boot 异步线程间数据传递

小小怪下士

Java spring 程序员 springboot

音乐APP用户争夺战,火山引擎VeDI助力用户体验升级!

字节跳动数据平台

大数据 增长 音乐 企业号 2 月 PK 榜

ChatGPT时代的打工人众生相

白洞计划

ChatGPT

宽表为什么横行?

王磊

探讨丨传统行业必须数字化转型吗?

优秀

数字化转型

5 如何优雅的告诉老板复制 ChatGPT几乎是“impossible”的?

涛哥 数字产品和业务架构

ChatGPT 业务架构师

中美ChatGPT的商业化分野

脑极体

ChatGPT

Three.js 进阶之旅:物理效果-碰撞和声音 💥

dragonir

CSS JavaScript html 前端 three.js

ChatGPT入门案例|商务智能对话客服(一)| 社区征文

TiAmo

AI ChatGPT

热点面试题: Array中有哪些非破坏性方法?

Immerse

JavaScript array 前端面试题 Javascript框架 超全前端面试题

用户卖家平台三方螺旋成长 如何让商品推荐更智能

阿里技术

全球化技术能力

线程私有变量ThreadLocal详解

Java随想录

Java 线程 并发

Java Map操作解锁新姿势

派大星

基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

汀丶人工智能

自然语言处理 nlp 2月月更 2月日更 文本匹配算法

瑞萨RH850 CS+环境下设置堆和栈空间

不脱发的程序猿

嵌入式 汽车电子 MCU RH850 瑞萨IDE

2023年第一季度汽车行业行情预测分析

不脱发的程序猿

汽车电子 2023年第一季汽车行业分析

Java 发展史

kcodez

Java 后端

OKR之剑·实战篇06:OKR致胜法宝-氛围&业绩双轮驱动(下)

vivo互联网技术

团队管理 OKR

活动预告|Triton Meetup 2023

AI Infra

AI

智能汽车商业化、产业化演进及投资机会分析

不脱发的程序猿

汽车电子 智能汽车商业化 汽车行业投资机会分析

2023-02-14:魔物了占领若干据点,这些据点被若干条道路相连接, roads[i] = [x, y] 表示编号 x、y 的两个据点通过一条道路连接。 现在勇者要将按照以下原则将这些据点逐一夺回:

福大大架构师每日一题

算法 rust 福大大

入门数据分析师的最强秘籍,都在这4本书里!

博文视点Broadview

分布式一致性协议与算法:拿下它,解决分布式系统 80% 核心问题 | 极客时间_架构_韩健_InfoQ精选文章