Categories
程式開發

分佈式一致性協議與算法:拿下它,解決分佈式系統 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. 以實戰為中心的分佈式內容體系。
    分佈式一致性協議與算法:拿下它,解決分佈式系統 80% 核心問題 | 極客時間 1

現在訂閱有什麼福利?

1.早鳥優惠 ¥55,原價 ¥68。結算時,輸入優惠口令「fenbushi6」再減 5 元,到手僅 50 元,口令僅限【前 200 個名額】有效,戳此搶購

2.訂閱專欄後,生成分享海報,每成功邀請 1 位好友訂閱,可得 ¥18 返現。