分布式系統(tǒng)-0-知識架構(gòu)

分布式系統(tǒng)的分布式是指多臺機(jī)器組成一個(gè)整體,具備存儲和計(jì)算能力,理想情況下一個(gè)分布式系統(tǒng)可以像單機(jī)一樣使用,只需要增加機(jī)器就可以提升整體性能。

巧豆一麻袋,為什么費(fèi)那么大勁組合一堆機(jī)器而不是用配置更好的單機(jī)?是的,在大數(shù)據(jù)到來之前,很多公司就是靠做高配機(jī)器大賺政府和大企業(yè)的錢。但是像谷歌臉書等互聯(lián)網(wǎng)企業(yè)誕生后,他們的數(shù)據(jù)以指數(shù)級速度增長,所以他們根本負(fù)擔(dān)不起高配機(jī)器的費(fèi)用,與此同時(shí),要存數(shù)據(jù)也不再單純的 SQL 數(shù)據(jù),而是像網(wǎng)頁,圖片等非結(jié)構(gòu)化數(shù)據(jù)。在這些需求下,谷歌在實(shí)踐中總結(jié)了三篇影響深遠(yuǎn)的論文(MapReduce/GFS/Big Table),然后之后的分布式系統(tǒng)基本是在實(shí)現(xiàn)和擴(kuò)展論文的內(nèi)容。這里多說一句,為什么是谷歌?因?yàn)樗麄兪紫扔龅絾栴},為了生存下去,不得不開展新的技術(shù),可以想象03年他們文件系統(tǒng)集群存儲的設(shè)計(jì)目標(biāo)就是 100TB 級別了。

所以,分布式系統(tǒng)就是管理很多廉價(jià)機(jī)器,通過復(fù)制備份保證在一些機(jī)器宕機(jī)或者網(wǎng)絡(luò)故障時(shí),整個(gè)系統(tǒng)還能正確的繼續(xù)提供服務(wù),而且失聯(lián)的機(jī)器恢復(fù)后,可以再次融入系統(tǒng)中,機(jī)器的數(shù)量正比于系統(tǒng)性能。

所以面對不穩(wěn)定的網(wǎng)絡(luò)環(huán)境,錯(cuò)綜復(fù)雜的機(jī)器狀態(tài),在少數(shù)機(jī)器不可用時(shí),保證其他機(jī)器還能正確服務(wù),同時(shí)還要盡可能提高并發(fā),可以想象其復(fù)雜程度。所以理解好不同場景下的分布式模型,其他模型都比較容易了,畢竟打了大Boss,小怪都很輕松。

老實(shí)講,搞分布式真的是人類自虐的游戲。但為了增加辣雞機(jī)器就能提升性能的偉大目標(biāo),讓我們來研究一波吧。

巧豆一麻袋,相對于提升單機(jī)配置的縱向擴(kuò)展,增加機(jī)器的橫向擴(kuò)展又啥特點(diǎn)?

簡單的說橫向擴(kuò)展帶來的問題是業(yè)務(wù)邏輯的程序要處理分布式系統(tǒng)中的復(fù)雜度,所以業(yè)務(wù)代碼需要考慮的系統(tǒng)復(fù)雜度越多,開發(fā)效率就會越慢,出錯(cuò)的可能性就會越大。

MIT 6.428 課程系統(tǒng)介紹了當(dāng)今分布式系統(tǒng)的不同場景下的實(shí)踐方案,課程資料是論文和教授上課使用的教案,沒有視頻,所以學(xué)習(xí)起來門檻較高。所以如果有研究精神可以直接看論文,或者直接去上課。

本系列文章旨在為大家建立分布式系統(tǒng)知識體系架構(gòu),用案例豐富架構(gòu),而且每個(gè)案例都都相對獨(dú)立以便于深入學(xué)習(xí)。

好了,我們來了解一下整個(gè)分布式系統(tǒng)的核心目標(biāo):對應(yīng)用程序隱藏分布式系統(tǒng)的復(fù)雜度。主要設(shè)計(jì)三個(gè)大的方面:存儲,通訊和計(jì)算。

wait,這不是和操作系統(tǒng)管理進(jìn)程所處理的內(nèi)存,進(jìn)程間通信,CPU一樣?Good question,經(jīng)得起考驗(yàn)的模型更接近于真理。沒錯(cuò),在分布式系統(tǒng)中,每臺機(jī)器可以簡單地理解為一個(gè) worker,即單機(jī)的一個(gè)進(jìn)程。

我們將面臨三大問題:

  1. 通訊:遠(yuǎn)程調(diào)用,線程,并發(fā)控制
  2. 性能:為保證一致性,使用多機(jī)備份和負(fù)載問題
  3. 容錯(cuò):復(fù)制副本提升可用性和數(shù)據(jù)持久性。

系列文章列表:

  1. MapReduce 分布式計(jì)算算法

  2. RPC 遠(yuǎn)程調(diào)用

  3. GFS 谷歌文件系統(tǒng)

  4. 主從復(fù)制提高可用性

  5. Raft 容錯(cuò)機(jī)制,狀態(tài)復(fù)制機(jī)一致性算法

  6. ZooKeeper

  7. 分布式事務(wù):兩階段提交

  8. 樂觀并發(fā)控制

  9. FaRM: Fast Remote Meory

  10. 釋放一致性

  11. 最終一致性

實(shí)驗(yàn):

  1. MapReduce
  2. Raft
  3. Fault-tolerant Key/Value Service
  4. Sharded Key/Value Service
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容