最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

分布式一致性协议与算法:拿下它,解决分布式系统 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:294082

评论

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

鸿蒙开发实例|对象关系映射数据库

TiAmo

华为 华为云 10月月更

校园大赛 | 数云融合 叩响未来——神州数码集团2022年校园大赛火热开启!

科技热闻

华为云ECS,如何赋能企业开展云上业务?

路过的憨憨

华为

纵享丝滑,华为云CDN加速服务的极致体验

路过的憨憨

华为

覆水也可收, 破镜可重圆! EasyRecovery帮你轻松找回丢失数据

淋雨

数据恢复 EasyRecovery

从 Traefik 到 APISIX,汽车智能计算平台公司「地平线」在 Ingress Controller 的探索和实践

API7.ai 技术团队

开源 AI 网关 APISIX Ingress Controller

一文带你更了解Java中的方法

陌上

Java、 编程、 10月月更

助力企业高效率办公,华为云桌面必不可少

科技怪授

华为云 桌面云 云桌面

「云渲染」渲染农场的架构原理、特点

Finovy Cloud

架构 原理 云渲染 云渲染农场

启科量子可视化量子编程——QuComposer

启科量子开发者官方号

量子计算 可视化开发 启科量子

Java的一维数组和二维数组

陌上

数据结构 Java、 10月月更

个人和初创企业想要搭建网站,如何挑选一台便宜合适的云主机?

京东科技开发者

云主机 网站搭建 测评 性能评测

企业如何从0到1搭建BI系统

葡萄城技术团队

BI 仪表盘识别 可视化数据

招聘软件哪个最好用?

优秀

招聘系统

换行符不一致问题终极处理方案——gitattributes

甜点cc

JavaScript 前端 代码规范 10月月更

华为云桌面,随时随地助力企业轻松办公

科技怪授

华为云 桌面云 云桌面

办公无界,看华为云桌面如何助企业上“云”

科技怪授

华为云 桌面云 云桌面

启科量子 QuBranch 正式开源

启科量子开发者官方号

量子计算 编程工具 启科量子

闻道Go语言,6月龄必知必会

有态度的马甲

独家!【隐秘而伟大】这群神秘的程序员,干了票大的

博文视点Broadview

Go | 基本数据类型的相互转换

甜点cc

golang 学习笔记 10月月更

代码规范以及commit扫描代码

甜点cc

前端 代码规范 React Native 10月月更

现代化SDLC与架构评审

I

安全架构设计 SSDLC

Java | static和不可变关键字final

陌上

编程 Java、 10月月更

华为云桌面,助力企业扬帆起航

科技怪授

华为云 桌面云 华为云桌面

跨库分页

zarmnosaj

10月月更

华为云网站安全解决方案,站在企业安全的最前沿

科技之光

LF AI & Data AICon 2022—AI工程化回顾

星策开源社区

机器学习 微软 AI工程化 人工智能’ AICon

CDC ChangeLog Stream实时流入CLICKHOUSE最佳姿势

水滴

实时数仓 Clickhouse CDC Flink CDC Debezium

华为云加固企业网站安全堤坝,助您业务稳定流畅

科技之光

汽车云服务应用场景系列报告——自动驾驶仿真测试云服务行业图谱

易观分析

云服务 汽车

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