認識分布式系統(tǒng)

認識分布式系統(tǒng)

Google “三駕馬車”論文發(fā)布以后抬吟,“大數(shù)據(jù)”和“分布式”就成了各種科技新聞媒體的“寵兒”,雖然如今頭版已被“人工智能”雕凹、“機器學習”占據(jù)琼开,圍繞著解決大規(guī)模分布式應用技術(shù)挑戰(zhàn)的話題還是能引起廣泛的關(guān)注。

回想當初還在大學時候精算,我喜歡分布式而不是機器學習瓢宦,主要是因為相比于機器學習大塊大塊的公式,分布式系統(tǒng)幾乎不需要太多數(shù)學知識灰羽,它是一門理論模型與工程技法并重的學科驮履。作為一個分布式系列的開篇,本文沒有高深的論文和復雜的數(shù)學廉嚼,只是分享我對分布式系統(tǒng)的一些認識玫镐。

費林分類法(Flynn's Taxonomy)

費林根據(jù)資訊流(information stream)可分成指令(Instruction)和資料(Data)兩種,把計算模型分為4類:

  • 單指令流單數(shù)據(jù)流計算機(SISD):傳統(tǒng)的單核 CPU怠噪,沒有并行計算恐似。
  • 單指令流多數(shù)據(jù)流計算機(SIMD):一個常見的例子就是 GPU 架構(gòu)。Intel 也有支持 SIMD 的 CPU 架構(gòu)傍念。
  • 多指令流單數(shù)據(jù)流計算機(MISD):用多個指令操作單個數(shù)據(jù)流矫夷,幾乎沒有意義。
  • 多指令流多數(shù)據(jù)流計算機(MIMD):多個獨立的 CPU 可以協(xié)作解決完全不同的子問題甚至是單一的大問題憋槐。涵蓋了并行和分布式系統(tǒng)双藕。
費林分類法

MIMD 的程序可以是同步的,也可以是異步的阳仔。能力強大的 MIMD 是目前主流的架構(gòu)類型蔓彩,超級計算機、并行計算機集群、分布式系統(tǒng)赤嚼、多處理器計算機和多核計算機都屬于這種類型。

MIMD 可以繼續(xù)分類:

  • 按內(nèi)存:具有共享存儲器的通常稱為多處理器(multiprocessor)顺又;而不具有共享存儲器的則稱為多計算機(multicomputer)
    • 多處理器系統(tǒng)(multi-processor)
    • 多計算機系統(tǒng)(multi-computer)
  • 連接方式:
    • 總線式(Bus-based)
    • 交換式(Switched)
  • 關(guān)聯(lián)程度:
    • 緊耦合式:消息延遲短更卒、帶寬高、系統(tǒng)可用性高稚照,多用于并行系統(tǒng)
    • 松耦合式:消息延遲長蹂空、帶寬更低、部分組件可能發(fā)生故障而不影響其他組件果录,多用于分布式系統(tǒng)
MIMD 系統(tǒng)分類

可以發(fā)現(xiàn)上枕,我們要討論的分布式系統(tǒng),就是 MIMD 類型架構(gòu)中 Bus-based multicomputers 和 Switched multicomputers

什么是分布式系統(tǒng)弱恒?

提到分布式系統(tǒng)我們常常會想到很多大型的系統(tǒng)辨萍,比如說搜索引擎,你知道它背后肯定不止一臺服務器進行處理返弹,也知道微博锈玉、微信和淘寶背后是多個大型數(shù)據(jù)中心。這種觀點當然是正確的义起。但是分布式系統(tǒng)不一定是大規(guī)模的拉背,一個家用的 NAS 服務器也是分布式系統(tǒng),甚至和你電腦連接的藍牙鍵盤也是分布式系統(tǒng)默终。

在《分布式系統(tǒng):概念與設計》一書中椅棺,對分布式系統(tǒng)做了如下定義:

分布式系統(tǒng)是其組件分布在連網(wǎng)的計算機上,組件之間通過傳遞消息進行通信和協(xié)調(diào)的系統(tǒng)齐蔽。

通常有以下特點:

  • 不共享內(nèi)存(只能通過網(wǎng)絡通信)
  • 不共享時鐘
  • 不共享操作系統(tǒng)

為什么需要分布式系統(tǒng)两疚?

有時候,并不是僅僅因為覺得便宜而將多臺計算機連接在一起肴熏。建立分布式系統(tǒng)有真正的好處:

  • 社交:讓地理位置分散的用戶可以一起工作一起玩鬼雀,這樣的例子很多:分布式文檔系統(tǒng)芬首、多人游戲桨菜、視頻會議和社交網(wǎng)絡等;
  • 高可用:一小部分機器宕機了奄毡,整個系統(tǒng)仍然可以正常工作鸦做;
  • 擴展性:當業(yè)務擴張励烦、用戶數(shù)變多或歷史數(shù)據(jù)變得越來越大時,可以直接往現(xiàn)有分布式系統(tǒng)中添加機器泼诱;
  • 遠程服務:我們的電腦和手機無法放下日益增長的數(shù)據(jù)坛掠,像 Dropbox、iCloud 等軟件為我們提供遠程服務;
  • IoT:智能家居屉栓、自動售賣機舷蒲、智能收費站和未來更多的的 IoT 設備都會涉及到分布式系統(tǒng)的應用。
  • 性價比:價格當然也是其中的原因友多。

分布式系統(tǒng)的挑戰(zhàn)

分布式系統(tǒng)雖好牲平,但系統(tǒng)的復雜性同時會引入很多棘手的問題,下面重點關(guān)注三個問題:

網(wǎng)絡延遲問題

分布式系統(tǒng)中的多個節(jié)點以網(wǎng)絡進行通信域滥,但是網(wǎng)絡并不保證什么時候到達以及是否一定到達纵柿。很多事情可能會出錯:

  • 請求可能已經(jīng)丟失(可能有人拔掉了網(wǎng)線)。
  • 請求可能正在排隊启绰,稍后將交付(也許網(wǎng)絡或收件人超載)昂儒。
  • 遠程節(jié)點可能已經(jīng)失效(可能是崩潰或關(guān)機)。
  • 遠程節(jié)點可能暫時停止了響應(可能會遇到長時間的垃圾回收暫停委可;參閱“暫停進程”)渊跋,但稍后會再次響應。
  • 遠程節(jié)點可能已經(jīng)處理了請求撤缴,但是網(wǎng)絡上的響應已經(jīng)丟失(可能是網(wǎng)絡交換機配置錯誤)刹枉。
  • 遠程節(jié)點可能已經(jīng)處理了請求,但是響應已經(jīng)被延遲屈呕,并且稍后將被傳遞(可能是網(wǎng)絡或者你自己的機器過載)微宝。

時鐘問題

  • ?消息通過網(wǎng)絡從一臺機器傳送到另一臺機器需要時間,但由于網(wǎng)絡中的可變延遲虎眨,我們不知道到底花了多少時間蟋软。這個事實有時很難確定在涉及多臺機器時發(fā)生事情的順序。
  • 網(wǎng)絡上的每臺機器都有自己的時鐘嗽桩,可能比其他機器稍快或更慢岳守。

部分失效

單機系統(tǒng)上的程序要么工作,要么出錯碌冶。
在分布式系統(tǒng)中湿痢,系統(tǒng)的某些部分可能會以某種不可預知的方式宕機。這被稱為部分失效(partial failure)扑庞。
難點在于部分失效是不確定的:如果你試圖做任何涉及多個節(jié)點和網(wǎng)絡的事情譬重,它有時可能會工作,有時會出現(xiàn)不可預知的失敗罐氨。正如我們將要看到的臀规,你甚至不知道是否成功了,因為消息通過網(wǎng)絡傳播的時間也是不確定的栅隐!
這種不確定性和部分失效的可能性塔嬉,使得分布式系統(tǒng)難以琢磨和調(diào)試玩徊。

結(jié)語

分布式系統(tǒng)主要研究三大方向:

  • 分布式存儲系統(tǒng)
  • 分布式計算系統(tǒng)
  • 分布式調(diào)度系統(tǒng)

這些方向都有一些特定的算法,但是谨究,分布式共識問題試圖探討分布式系統(tǒng)中最基本的問題——如何讓分布式系統(tǒng)中的節(jié)點達成共識恩袱?到底什么是共識?下一篇记盒,我們將深入討論這個問題憎蛤。

歡迎關(guān)注我的微信公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市纪吮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌萎胰,老刑警劉巖碾盟,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異技竟,居然都是意外死亡冰肴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門榔组,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙尉,“玉大人,你說我怎么就攤上這事搓扯〖焯担” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵锨推,是天一觀的道長铅歼。 經(jīng)常有香客問我,道長换可,這世上最難降的妖魔是什么椎椰? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮沾鳄,結(jié)果婚禮上慨飘,老公的妹妹穿的比我還像新娘。我一直安慰自己译荞,他們只是感情好瓤的,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磁椒,像睡著了一般堤瘤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浆熔,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天本辐,我揣著相機與錄音桥帆,去河邊找鬼。 笑死慎皱,一個胖子當著我的面吹牛老虫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茫多,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祈匙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了天揖?” 一聲冷哼從身側(cè)響起夺欲,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎今膊,沒想到半個月后些阅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡斑唬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年市埋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恕刘。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缤谎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褐着,到底是詐尸還是另有隱情坷澡,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布献起,位于F島的核電站洋访,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谴餐。R本人自食惡果不足惜姻政,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岂嗓。 院中可真熱鬧汁展,春花似錦、人聲如沸厌殉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽公罕。三九已至器紧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楼眷,已是汗流浹背铲汪。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工熊尉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掌腰。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓狰住,卻偏偏與公主長得像,于是被迫代替她去往敵國和親齿梁。 傳聞我的和親對象是個殘疾皇子催植,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354