分布式架構(gòu)的演進(jìn)過(guò)程

一.分布式架構(gòu)的發(fā)展歷史

? ? ?1946年,世界上第一臺(tái)電子計(jì)算機(jī)在美國(guó)的賓夕法尼亞大學(xué)誕生,它的名字是:ENICAC ,這臺(tái)計(jì)算機(jī)的體重比較大,計(jì)算速度也不快,但是而代表了計(jì)算機(jī)時(shí)代的到來(lái),再以后的互聯(lián)網(wǎng)的發(fā)展中也有基礎(chǔ)性的意義棵逊。

? ? ?計(jì)算機(jī)的組成是有五部分完成的,分別是:輸入設(shè)備,輸出設(shè)備,存儲(chǔ)器,存儲(chǔ)器里面由運(yùn)算器和控制器,有一個(gè)馮諾依曼的模型非常形象的對(duì)象計(jì)算機(jī)的組成進(jìn)行了描述,不過(guò)計(jì)算機(jī)也是有數(shù)據(jù)流,指令流,控制流來(lái)進(jìn)行計(jì)算的和正常運(yùn)轉(zhuǎn)的硫麻。如圖:

? ? ? ENIAC之后,電子計(jì)算機(jī)進(jìn)入到了IBM主導(dǎo)的大型機(jī)的時(shí)代,? ?在1946年第一臺(tái)IBM大型機(jī)SYSTEM/360誕生,這使得IBM在20世紀(jì)50~60年代統(tǒng)治了整個(gè)大型計(jì)算機(jī)的工業(yè)件舵,在大型主機(jī)時(shí)代,計(jì)算機(jī)架構(gòu)向兩個(gè)方向發(fā)展CISC(微處理器執(zhí)行的計(jì)算機(jī)語(yǔ)言指令集)CPU為架構(gòu)的價(jià)格便宜的個(gè)人PC和RISC(精簡(jiǎn)指令集計(jì)算機(jī))價(jià)格高的小型UNIX服務(wù)器。

? ? ?大型主機(jī)的出現(xiàn),憑借著計(jì)算能力和處理能力,高的穩(wěn)定性和安全性,在很長(zhǎng)的一段時(shí)間內(nèi)引領(lǐng)到計(jì)算領(lǐng)域的發(fā)展鲸沮。但是集中式的計(jì)算機(jī)系統(tǒng)來(lái)帶來(lái)了一些問(wèn)題,來(lái)越來(lái)越不能滿足用戶的需求比如說(shuō):

? ? ? 1.大型的主機(jī)非常貴,一般的小企業(yè)用不起。

? ? ? 2.大型主機(jī)比較復(fù)雜,培養(yǎng)人才的成本比較高锈候。

? ? ? 3.單點(diǎn)問(wèn)題,如過(guò)大型機(jī)出現(xiàn)故障,整個(gè)系統(tǒng)都掛了運(yùn)行不了,使企業(yè)的損失非常大杜恰。

? ? ? 4.隨著技術(shù)的進(jìn)步,個(gè)人PC電腦的性能越來(lái)越高,成本也越來(lái)越低获诈。

阿里巴巴在2009年發(fā)起了一項(xiàng)去“IOE”的驅(qū)動(dòng)

? ??IOE指的是IBM的小型機(jī),Oracle的數(shù)據(jù)庫(kù)和EMC的高端存儲(chǔ)設(shè)備,2009年的去IOE的運(yùn)動(dòng),一直到2003的支付寶的最后一臺(tái)IBM的小型機(jī)的下線心褐。

為什么要去IOE

? ??阿里巴巴過(guò)去數(shù)據(jù)庫(kù)使用的是Oracle,并使用小型機(jī)和高端存儲(chǔ)設(shè)備提供高性能的數(shù)據(jù)處理和存儲(chǔ)服務(wù)舔涎。隨著公司的業(yè)務(wù)量的上升,用戶規(guī)模的不斷上漲,傳統(tǒng)的集中式的架構(gòu)Oracle數(shù)據(jù)庫(kù)在擴(kuò)展方面遭遇了瓶頸嚎于。向傳統(tǒng)的Oracle,DB2都是以集中式的為主,存在的缺點(diǎn)就是擴(kuò)展性的不足,集中式的擴(kuò)展主要是采用的是向上的擴(kuò)展不是水平的擴(kuò)展,這樣時(shí)間長(zhǎng)了知染,早晚都會(huì)遇到系統(tǒng)瓶頸。

想學(xué)習(xí)大數(shù)據(jù)或者對(duì)大數(shù)據(jù)技術(shù)感興趣的朋友,這里我整理了一套大數(shù)據(jù)的學(xué)習(xí)視頻免費(fèi)分享給大家,從入門到實(shí)戰(zhàn)都有肤视,大家可以加我的微信:Lxiao_28獲仁獗蕖1枚健(備注領(lǐng)取資料)秩冈。也歡迎進(jìn)微信群交流丹锹,或者獲取Java高級(jí)技術(shù)學(xué)習(xí)資料。

一.分布式架構(gòu)的常見概念

? ?集群

? ??小飯店原來(lái)是一個(gè)廚師哩治,切菜洗菜備料炒菜全干。后來(lái)客人多了馁启,廚房一個(gè)廚師忙不過(guò)來(lái)驾孔,又請(qǐng)了個(gè)廚師,兩個(gè)廚師都能炒一樣的菜惯疙,這兩個(gè)廚師的關(guān)系就是集群翠勉。

分布式

? ? ? ?為了讓廚師專心炒菜,把菜做到極致,又請(qǐng)了個(gè)配菜師負(fù)責(zé)切菜,備菜,備料,廚師和配菜師的關(guān)系就是分布式的,一個(gè)配菜師也忙不過(guò)來(lái),有請(qǐng)了個(gè)配菜師,這兩個(gè)配菜師的關(guān)系就是集群了龙亲。所以說(shuō)有分布式的架構(gòu)中可能有集群,但集群不等于有分布式嘁灯。

節(jié)點(diǎn)

? ? ?節(jié)點(diǎn)是指一個(gè)可以獨(dú)立按照分布式協(xié)議完成一組邏輯的程序個(gè)體。在具體的項(xiàng)目中,一個(gè)節(jié)點(diǎn)表示的是一個(gè)操作系統(tǒng)上的進(jìn)程滥壕。

副本機(jī)制

? ? ? ?副本指的是在分布式系統(tǒng)中為數(shù)據(jù)或服務(wù)提供冗余蒿偎。

? ? ? ?數(shù)據(jù)副本指在不同的節(jié)點(diǎn)上持久化同一份數(shù)據(jù),當(dāng)出現(xiàn)某一個(gè)節(jié)點(diǎn)的數(shù)據(jù)丟失時(shí),可以從副本讀取數(shù)據(jù)朽们。數(shù)據(jù)副本是分布式系統(tǒng)中結(jié)果數(shù)據(jù)丟失的唯一手段。

? ? ? ?服務(wù)副本表示的是多個(gè)節(jié)點(diǎn)提供相同的服務(wù),通過(guò)主從關(guān)系來(lái)實(shí)現(xiàn)服務(wù)的高可用方案诉位。

中間件

? ? ?中間件位與操作系統(tǒng)提供的服務(wù)之外,又不屬于應(yīng)用,它是位與應(yīng)用和系統(tǒng)層之間為開發(fā)者方便的處理通信,輸入和輸出的一類軟件,能夠讓用戶關(guān)心自己應(yīng)用的一部分骑脱。

架構(gòu)的發(fā)展過(guò)程

? ? ?一個(gè)成熟的大型網(wǎng)站系統(tǒng)架構(gòu)并不是一開始就設(shè)計(jì)的非常完美的,也不是一開始就具備高性能,高可用苍糠,安全性等特性叁丧,而是隨著用戶量的增加,業(yè)務(wù)功能的擴(kuò)展慢慢完善演變過(guò)來(lái)的岳瞭。在這個(gè)發(fā)展過(guò)程中,開發(fā)模式,技術(shù)架構(gòu)等都會(huì)發(fā)生非常大的變化拥娄。

? ? ? 假如系統(tǒng)具備一下功能:

? ? ? 用戶模塊:用戶注冊(cè)和管理

? ? ? 商品模塊:商品展示和管理

? ? ? 交易模塊:創(chuàng)建交易及支付結(jié)算

?階段一:單應(yīng)用架構(gòu)

? ? ? ?系統(tǒng)的初級(jí)都是應(yīng)用和數(shù)據(jù)庫(kù)都放在一臺(tái)服務(wù)器上。

階段二:應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器分離

? ? ? ??隨著網(wǎng)站的用戶量增大瞳筏,流量增大,對(duì)應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器單獨(dú)的部署機(jī)器,這樣可以增加系統(tǒng)的性能,提高訪問(wèn)的效率,提高單機(jī)的負(fù)載能力和容災(zāi)的能力稚瘾。

階段三:應(yīng)用服務(wù)器集群-應(yīng)用服務(wù)器負(fù)載告警

? ? ??隨著訪問(wèn)量和流量的增加,假設(shè)數(shù)據(jù)庫(kù)沒(méi)有遇到瓶頸,對(duì)應(yīng)用服務(wù)器集群來(lái)對(duì)請(qǐng)求進(jìn)行分流,提高程序的性能。存在的問(wèn)題:用戶的請(qǐng)求由誰(shuí)來(lái)轉(zhuǎn)發(fā),session如何來(lái)管理的問(wèn)題乏矾。

階段四:數(shù)據(jù)庫(kù)壓力變大-數(shù)據(jù)庫(kù)讀寫分離

? ? ??讀寫分離的話,這樣以后的請(qǐng)求孟抗,查詢的請(qǐng)求就可以去從庫(kù)里面讀數(shù)據(jù),寫的數(shù)據(jù)可以到主庫(kù)中了,但是會(huì)帶來(lái)幾個(gè)問(wèn)題:

? ? ? 1.主從的數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步:可以使用mysql自帶的master-slave方式實(shí)現(xiàn)主從復(fù)制

? ? ? 2.對(duì)應(yīng)的數(shù)據(jù)源的選擇:采用第三方數(shù)據(jù)庫(kù)中間件,例如:mycat

階段五:使用搜索引擎緩解讀庫(kù)的壓力

? ? ?數(shù)據(jù)庫(kù)做讀庫(kù)的話,常常對(duì)模糊查詢的性能不是很好,特別是對(duì)于大型的互聯(lián)網(wǎng)公司來(lái)說(shuō),想搜索的模塊就比較核心了,這是可以使用搜索引擎了,雖然可以大幅度的提高查詢的速度,但是同時(shí)也會(huì)帶來(lái)一些問(wèn)題比如索引的構(gòu)建迁杨。

階段六:引入緩存機(jī)制緩解數(shù)據(jù)庫(kù)的壓力

? ? ?對(duì)一些熱點(diǎn)的數(shù)據(jù),可以使用redis,memcache來(lái)作為應(yīng)用層的緩存;另外在某些場(chǎng)景下,可以使用mongodb來(lái)替代關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)凄硼。

階段七:數(shù)據(jù)庫(kù)的水平/垂直拆分

? ? ?垂直拆分:把數(shù)據(jù)庫(kù)中不同的業(yè)務(wù)數(shù)據(jù)拆分到不同的數(shù)據(jù)庫(kù)中铅协。

? ? ?水平拆分:把同一個(gè)表中的數(shù)據(jù)拆分到兩個(gè)甚至更多的數(shù)據(jù)庫(kù)中,水平拆分的原因是某些業(yè)務(wù)量數(shù)據(jù)量大的已經(jīng)達(dá)到了單個(gè)數(shù)據(jù)庫(kù)的瓶頸,這時(shí)候可以采取將表拆分到多個(gè)數(shù)據(jù)庫(kù)中。

階段八:應(yīng)用的拆分

? ? ?隨著業(yè)務(wù)的發(fā)展,業(yè)務(wù)越來(lái)越多,應(yīng)用的壓力越來(lái)越大摊沉。工程規(guī)模也越來(lái)越龐大狐史。這個(gè)時(shí)候就可以考慮將應(yīng)用拆分,按照領(lǐng)域模型將我們的用戶,商品说墨,交易分拆成子系統(tǒng)骏全。

這樣拆分以后,可能會(huì)有一些相同的代碼,比如用戶操作,商品的交易查詢,所有會(huì)導(dǎo)致每個(gè)系統(tǒng)都會(huì)有用戶查詢和訪問(wèn)相關(guān)的操作。這些相同的代碼和模塊一定要抽象出來(lái)尼斧。這樣有利于維護(hù)和管理姜贡。

服務(wù)拆分以后,服務(wù)之間的通信可以通過(guò)RPC技術(shù),比較典型的有:webservice、hession棺棵、http楼咳、RMI等。

原文:代碼屠夫18開源中國(guó)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烛恤,一起剝皮案震驚了整個(gè)濱河市母怜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缚柏,老刑警劉巖苹熏,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異币喧,居然都是意外死亡轨域,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門粱锐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疙挺,“玉大人,你說(shuō)我怎么就攤上這事怜浅☆砣唬” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵恶座,是天一觀的道長(zhǎng)搀暑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)跨琳,這世上最難降的妖魔是什么自点? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮脉让,結(jié)果婚禮上桂敛,老公的妹妹穿的比我還像新娘功炮。我一直安慰自己,他們只是感情好术唬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布薪伏。 她就那樣靜靜地躺著,像睡著了一般粗仓。 火紅的嫁衣襯著肌膚如雪嫁怀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天借浊,我揣著相機(jī)與錄音塘淑,去河邊找鬼。 笑死蚂斤,一個(gè)胖子當(dāng)著我的面吹牛存捺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曙蒸,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼召噩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了逸爵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凹嘲,失蹤者是張志新(化名)和其女友劉穎师倔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體周蹭,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趋艘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凶朗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓷胧。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棚愤,靈堂內(nèi)的尸體忽然破棺而出搓萧,到底是詐尸還是另有隱情,我是刑警寧澤宛畦,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布瘸洛,位于F島的核電站,受9級(jí)特大地震影響次和,放射性物質(zhì)發(fā)生泄漏反肋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一踏施、第九天 我趴在偏房一處隱蔽的房頂上張望石蔗。 院中可真熱鬧罕邀,春花似錦、人聲如沸养距。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铃在。三九已至阵具,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間定铜,已是汗流浹背阳液。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揣炕,地道東北人帘皿。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像畸陡,于是被迫代替她去往敵國(guó)和親鹰溜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • 本文是學(xué)習(xí)大型分布式網(wǎng)站架構(gòu)的技術(shù)總結(jié)。對(duì)架構(gòu)一個(gè)高性能牲览、高可用墓陈、可伸縮及可擴(kuò)展的分布式網(wǎng)站進(jìn)行了概要性描述,并給...
    Alukar閱讀 860評(píng)論 1 11
  • 概述 本文是學(xué)習(xí)大型分布式網(wǎng)站架構(gòu)的技術(shù)總結(jié)。對(duì)架構(gòu)一個(gè)高性能庸毫、高可用仔拟、可伸縮及可擴(kuò)展的分布式網(wǎng)站進(jìn)行了概要性描述...
    程序員技術(shù)圈閱讀 1,697評(píng)論 2 35
  • 利用美圖APP日引1000+女性流量 人們所熟知的沒(méi)有APP應(yīng)該是“美圖秀秀”和“PS”利花,功能強(qiáng)大而實(shí)用。但除此之...
    晴天小娃閱讀 2,192評(píng)論 0 2
  • 喜歡一個(gè)人猶如潮汐载佳,短暫晋被、熱烈; 而愛(ài)一個(gè)人卻如涓涓細(xì)流刚盈,綿長(zhǎng)羡洛、溫潤(rùn)。 習(xí)慣了每日無(wú)聊卻溫馨的絮語(yǔ),卻沒(méi)有機(jī)會(huì)再去...
    大臉妹子yo閱讀 97評(píng)論 0 0
  • 風(fēng)呼呼吹欲侮,雨滴滴落崭闲,日天天曬,風(fēng)侵蝕了它的顏威蕉,雨浸濕了它的眸刁俭,日烤熟了它的肉。它就是那顆荒原野地里孤零零毫無(wú)用處的...
    蕭懷祖閱讀 148評(píng)論 0 0