2023年,做大資料的開發已經6年了,這期間分布式系統的知識學習了不少,但基本都是**於專案需要而零敲碎打,沒有系統性的融會貫通提綱挈領,在一件小事的觸動之下,決定將分布式系統做一次系統性的學習。
網上搜尋「如何系統性的學習分布式系統」,得到的答案除了知識點過於零散的,剩下就是不適合我的實際情況的,主要因為我沒有學習過演算法,對於很多複雜的演算法理解起來過於困難,而且在工程實踐中找不到實際的應用,總感覺是屠龍之技。
因此決定自己列乙個提綱,梳理一下分布式系統的知識,著重分析一些比較常用的開源軟體中的實現原理,注重工程實踐,減少理論研究,以設計思路為研究物件,不過分糾結於**的實現細節,便於自己的學習,也希望幫助他人。
學習一項技術,思路應該是看它解決了什麼問題,為了解決這個問題,它又具有哪些特性,這些特性又分別如何實現。
分布式系統解決什麼問題就不過多解釋了,無非是單一的節點無法滿足業務需求,需要多節點群智協同。
乙個多節點群智協同系統,應該具備以下特性:
一致性。分布式系統整體對外表現出的一致性由它的一致性模型決定。
我們將會學習以下一致性模型:
sequential consistency
causal consistency
linearizability
也會研究一些分布式系統的一致性模型:
zookeeper
共識。分布式系統具備達到共識的能力。(計畫介紹一些共識演算法,例如raft)
擴充套件性。(計畫介紹一些提高系統擴充套件性的東西,比如一致性hash)
容錯性。(可能會集中討論下容錯機制)
分布式系統同時也具有軟體系統中的其他特性,可能會介紹一下無鎖訊息佇列、simd指令、rpc之類的東西。
介紹一下如何驗證分布式系統設計的正確性。(tla+)
如何理解分布式系統
你女朋友是高可用麼?分布式系統的概念,技術 於戀愛,又高於戀愛 1.高可用 就算失戀了,可以迅速和另乙個女生戀愛,永遠不會是單身狀態 2.註冊中心 你和你女朋友去民政局登記,民政局就是註冊中心,掉線的代價就是離婚 3.負載均衡 你和多個女朋友輪流約會。星期一,三,五跟a約會,二,四,六和b約會,叫r...
分布式系統學習
分布式系統中節點分布情況在空間上是隨意分布的。系統中所有節點都是對等的,沒有主從之分。副本是分布式系統對資料和服務提供的一種冗餘方式,資料副本是指在不同節點上持久化同乙份資料,解決單點故障資料丟失的問題,服務副本是指多個節點提供同樣的服務,每個節點都有能力接受來自外部的請求並進行相應的處理。分布式系...
分布式系統
分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...