你真的了解分布式系統(tǒng)到底是什么嗎?

前言

隨著大型網(wǎng)站的各種高并發(fā)訪問、海量數(shù)據(jù)處理等場景越來越多,如何實(shí)現(xiàn)網(wǎng)站的高可用、易伸縮、可擴(kuò)展、安全等目標(biāo)就顯得越來越重要。為了解決這樣一系列問題,大型網(wǎng)站的架構(gòu)也在不斷發(fā)展。提高大型網(wǎng)站的高可用架構(gòu),不得不提的就是分布式。本文主要簡單介紹了分布式系統(tǒng)的概念、分布式系統(tǒng)的特點(diǎn)、常用的分布式方案以及分布式和集群的區(qū)別等。

一、集中式系統(tǒng)

在學(xué)習(xí)分布式之前,先了解一下與之相對應(yīng)的集中式系統(tǒng)是什么樣的。

集中式系統(tǒng)用一句話概括就是:一個(gè)主機(jī)帶多個(gè)終端。終端沒有數(shù)據(jù)處理能力,僅負(fù)責(zé)數(shù)據(jù)的錄入和輸出。而運(yùn)算、存儲等全部在主機(jī)上進(jìn)行。

拿一個(gè)電子商城舉例,一個(gè)集中式系統(tǒng)的電子商城,通過一個(gè)應(yīng)用實(shí)現(xiàn),該應(yīng)用部署在一起主機(jī)上,對外提供服務(wù)。用戶的所有操作均通過這一臺機(jī)器的一個(gè)應(yīng)用實(shí)現(xiàn)。

集中式系統(tǒng)的最大的特點(diǎn)就是部署結(jié)構(gòu)非常簡單,底層一般采用從IBM、HP等廠商購買到的昂貴的大型主機(jī)。因此無需考慮如何對服務(wù)進(jìn)行多節(jié)點(diǎn)的部署,也就不用考慮各節(jié)點(diǎn)之間的分布式協(xié)作問題。

但是,由于采用單機(jī)部署。很可能帶來系統(tǒng)大而復(fù)雜、難于維護(hù)、發(fā)生單點(diǎn)故障(單個(gè)點(diǎn)發(fā)生故障的時(shí)候會(huì)波及到整個(gè)系統(tǒng)或者網(wǎng)絡(luò),從而導(dǎo)致整個(gè)系統(tǒng)或者網(wǎng)絡(luò)的癱瘓)、擴(kuò)展性差等問題。

二、分布式系統(tǒng)

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

分布式系統(tǒng)是一個(gè)硬件或軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上,彼此之間僅僅通過消息傳遞進(jìn)行通信和協(xié)調(diào)的系統(tǒng)。

簡單來說就是一群獨(dú)立計(jì)算機(jī)集合共同對外提供服務(wù),但是對于系統(tǒng)的用戶來說,就像是一臺計(jì)算機(jī)在提供服務(wù)一樣。

分布式意味著可以采用更多的普通計(jì)算機(jī)(相對于昂貴的大型機(jī))組成分布式集群對外提供服務(wù)。計(jì)算機(jī)越多,CPU、內(nèi)存、存儲資源等也就越多,能夠處理的并發(fā)訪問量也就越大。

一個(gè)由分布式系統(tǒng)實(shí)現(xiàn)的電子商城,在功能上可能被拆分成多個(gè)應(yīng)用,分別提供不同的功能,組成一個(gè)分布式系統(tǒng)對外提供服務(wù)
而系統(tǒng)內(nèi)的各個(gè)子系統(tǒng)之間通過網(wǎng)絡(luò)進(jìn)行通信和協(xié)調(diào),如異步消息或者RPC/HTTP請求調(diào)用等。

所以,分布式系統(tǒng)中的計(jì)算機(jī)在空間上幾乎沒有任何限制,這些計(jì)算機(jī)可能被放在不同的機(jī)柜上,也可能被部署在不同的機(jī)房中,還可能在不同的城市中,對于大型的網(wǎng)站甚至可能分布在不同的國家和地區(qū)。

但是,無論空間上如何分布,一個(gè)標(biāo)準(zhǔn)的分布式系統(tǒng)應(yīng)該具有以下幾個(gè)主要特征:

分布性

分布式系統(tǒng)中的多臺計(jì)算機(jī)之間在空間位置上可以隨意分布,系統(tǒng)中的多臺計(jì)算機(jī)之間沒有主、從之分,即沒有控制整個(gè)系統(tǒng)的主機(jī),也沒有受控的從機(jī)。

透明性

系統(tǒng)資源被所有計(jì)算機(jī)共享。每臺計(jì)算機(jī)的用戶不僅可以使用本機(jī)的資源,還可以使用本分布式系統(tǒng)中其他計(jì)算機(jī)的資源(包括CPU、文件、打印機(jī)等)。

同一性

系統(tǒng)中的若干臺計(jì)算機(jī)可以互相協(xié)作來完成一個(gè)共同的任務(wù),或者說一個(gè)程序可以分布在幾臺計(jì)算機(jī)上并行地運(yùn)行。

通信性

系統(tǒng)中任意兩臺計(jì)算機(jī)都可以通過通信來交換信息。

和集中式系統(tǒng)相比,分布式系統(tǒng)的性價(jià)比更高、處理能力更強(qiáng)、可靠性更高、也有很好的擴(kuò)展性。

但是,分布式在解決了網(wǎng)站的高并發(fā)問題的同時(shí)也帶來了一些其他問題。

首先,分布式的必要條件就是網(wǎng)絡(luò),這可能對性能甚至服務(wù)能力造成一定的影響。其次,一個(gè)集群中的服務(wù)器數(shù)量越多,服務(wù)器宕機(jī)的概率也就越大。另外,由于服務(wù)在集群中分布是部署,用戶的請求只會(huì)落到其中一臺機(jī)器上,所以,一旦處理不好就很容易產(chǎn)生數(shù)據(jù)一致性問題。

三、常用的分布式方案

分布式應(yīng)用和服務(wù)

將應(yīng)用和服務(wù)進(jìn)行分層和分割,然后將應(yīng)用和服務(wù)模塊進(jìn)行分布式部署。這樣做不僅可以提高并發(fā)訪問能力、減少數(shù)據(jù)庫連接和資源消耗,還能使不同應(yīng)用復(fù)用共同的服務(wù),使業(yè)務(wù)易于擴(kuò)展。

分布式靜態(tài)資源

對網(wǎng)站的靜態(tài)資源如JS、CSS、圖片等資源進(jìn)行分布式部署可以減輕應(yīng)用服務(wù)器的負(fù)載壓力,提高訪問速度。

分布式數(shù)據(jù)和存儲

大型網(wǎng)站常常需要處理海量數(shù)據(jù),單臺計(jì)算機(jī)往往無法提供足夠的內(nèi)存空間,可以對這些數(shù)據(jù)進(jìn)行分布式存儲。

分布式計(jì)算

隨著計(jì)算技術(shù)的發(fā)展,有些應(yīng)用需要非常巨大的計(jì)算能力才能完成,如果采用集中式計(jì)算,需要耗費(fèi)相當(dāng)長的時(shí)間來完成。分布式計(jì)算將該應(yīng)用分解成許多小的部分,分配給多臺計(jì)算機(jī)進(jìn)行處理。這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。

四、分布式與集群

很多人對分布式和集群的概念不是很清楚,容易混淆,這里簡單區(qū)分一下:

分布式(distributed)是指在多臺不同的服務(wù)器中部署不同的服務(wù)模塊,通過遠(yuǎn)程調(diào)用協(xié)同工作,對外提供服務(wù)。

集群(cluster)是指在多臺不同的服務(wù)器中部署相同應(yīng)用或服務(wù)模塊,構(gòu)成一個(gè)集群,通過負(fù)載均衡設(shè)備對外提供服務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 本文由黑殼博客轉(zhuǎn)載 本文來源[轉(zhuǎn)]大家都在說的分布式系統(tǒng)到底是什么? 殼叔搞笑時(shí)間 在外地出差,下火車后住的便宜賓...
    殼叔閱讀 482評論 0 0
  • 1. 如何理解“分布式”? 經(jīng)常聽到”分布式系統(tǒng)“,”分布式計(jì)算“,”分布式算法“。分布式的具體含義是什么?狹義的...
    java后端學(xué)習(xí)閱讀 6,863評論 0 2
  • 分布式系統(tǒng)面臨的第一個(gè)問題就是數(shù)據(jù)分布,即將數(shù)據(jù)均勻地分布到多個(gè)存儲節(jié)點(diǎn)。另外,為了保證可靠性和可用性,需要將數(shù)據(jù)...
    olostin閱讀 4,613評論 2 26
  • 本文是學(xué)習(xí)大型分布式網(wǎng)站架構(gòu)的技術(shù)總結(jié)。對架構(gòu)一個(gè)高性能、高可用、可伸縮及可擴(kuò)展的分布式網(wǎng)站進(jìn)行了概要性描述,并給...
    Alukar閱讀 869評論 1 11
  • 踏著一地金黃,穿越清風(fēng)秋紅,抓起深秋的尾巴,恣意思緒飛揚(yáng)……一片片一片片金黃滑落枝頭,乘著風(fēng)兒在空中旖旎翩翩,戀不...
    唯一芝現(xiàn)閱讀 281評論 0 1