激情婷婷丁香色五月综合深爱野花_婷婷伊人五月天色综合激情网_丁香开心婷婷伊人_狠狠五月激情丁香六月_丁香花在线电影小说观看_丁香花在线视频观看免费_丁香花视频资源在线观看免费_狠狠色丁婷婷日日_伊人激情综合网,久久狠狠干,狠狠干2018_狠狠干天天草,综合五月天天干狠狠干,狠狠干在线观看,狠狠干最新网址,狠狠干狠狠做,狠狠操狠狠干,日韩亚洲狠狠丁香婷婷综合久久久,欧美精品夜夜橾天天橾天天色,中文精品久久中文字幕伊人小说小说

您現(xiàn)在的位(wèi)置(zhì):首頁 >> 網站建(jiàn)設 >> 內容(róng)

大(dà)型(xíng)網站(zhàn)係(xì)統架構(gòu)演化之路(lù)

時(shí)間:2014/9/18 10:11:15 點擊:545

摘要(yào):一個成(chéng)熟(shú)的大型網站(如(rú)淘寶(bǎo),天(tiān)貓,騰(téng)訊等(děng))的係統架構並不(bù)是(shì)一開始設(shè)計(jì)時(shí)就具備完(wán)整的高(gāo)性能(néng),高(gāo)可用,高伸(shēn)縮(suō)等(děng)特(tè)性(xìng)的(dí),它(tā)是(shì)隨(suí)著(zhuó)用(yòng)戶量(liáng)的增(zēng)加(jiā),業(yè)務功(gōng)能(néng)的(dí)擴(kuò)展逐(zhú)漸(jiàn)演變完善的,在這(zhè)個過程中,開(kāi)發(fā)模式,技術(shù)架(jià)構(gòu)...

一個(gè)成(chéng)熟的大型(xíng)網(wǎng)站(如淘(táo)寶(bǎo),天貓(māo),騰(téng)訊(xùn)等)的係(xì)統架構並不是一開(kāi)始設(shè)計時就(jiù)具備完整(zhěng)的高性能,高可(kě)用,高伸(shēn)縮等(děng)特(tè)性的,它是隨著(zhuó)用戶量的增加,業(yè)務(wù)功能(néng)的擴(kuò)展逐漸演變(biàn)完(wán)善(shàn)的(dí),在這(zhè)個過(guò)程中,開(kāi)發(fā)模(mó)式,技術架(jià)構(gòu),設(shè)計思想也(yě)發生了(liǎo)很大的變(biàn)化(huà),就(jiù)連(lián)技術人(rén)員(yuán)也(yě)從(cóng)幾個人發展(zhǎn)到(dào)一個部門甚至(zhì)一(yī)條(tiáo)產(chǎn)品(pǐn)綫。所以(yǐ)成(chéng)熟的(dí)係統(tǒng)架構是隨著(zhuó)業(yè)務的擴展而逐(zhú)步(bù)完(wán)善的(dí),並不是一蹴而就(jiù);不(bù)同業(yè)務(wù)特征的(dí)係統,會(huì)有各(gè)自(zì)的側重點(diǎn),例如(rú)淘(táo)寶(bǎo),要(yào)解決海(hǎi)量(liáng)的(dí)商品信(xìn)息(xī)的搜索,下(xià)單(dān),支付(fù),例(lì)如騰訊,要解(jiě)決數(shù)億用(yòng)戶的實(shí)時消(xiāo)息傳輸,百(bǎi)度它要處(chǔ)理海(hǎi)量的搜(sōu)索(suǒ)請求(qiú),他(tā)們(mén)都有(yǒu)各自的(dí)業(yè)務(wù)特性,係統(tǒng)架構(gòu)也(yě)有(yǒu)所(suǒ)不(bù)同。盡(jìn)管如此我們(mén)也可(kě)以(yǐ)從這些(xiē)不同(tóng)的(dí)網站(zhàn)背景(jǐng)下(xià),找(zhǎo)出(chū)其中(zhōng)共用的(dí)技術,這些技術和(hé)手段(duàn)廣(guǎng)泛(fàn)運用在大型(xíng)網站(zhàn)係(xì)統(tǒng)的架構中,下(xià)麵就(jiù)通過(guò)介紹大(dà)型網站係統(tǒng)的演化(huà)過(guò)程(chéng),來(lái)認(rèn)識(shí)這些(xiē)技(jì)術(shù)和手段(duàn)。

一(yī),最(zuì)開(kāi)始(shǐ)的網(wǎng)站架(jià)構(gòu)

最初的架構,應(yīng)用程(chéng)序(xù),數據庫(kù),文件(jiàn)都部署在一(yī)台服務器上,如(rú)圖:

大(dà)型網(wǎng)站係統(tǒng)架構演化之(zhī)路

二,應用,數(shù)據(jù),文件分離(lí)

隨著(zhuó)業務(wù)的擴(kuò)展,一台服(fú)務器已(yǐ)經不能滿足(zú)性能(néng)需求,故將(jiāng)應用程序,數據庫,文(wén)件(jiàn)各自部(bù)署在獨(dú)立(lì)的服(fú)務器(qì)上,並(bìng)且根(gēn)據服(fú)務器的用(yòng)途配(pèi)置不同(tóng)的硬(yìng)件(jiàn),達(dá)到最(zuì)佳的性能(néng)效(xiào)果。

大型網站(zhàn)係統架構(gòu)演(yǎn)化之路(lù)

三(sān),利(lì)用緩(huǎn)存(cún)改善(shàn)網站性(xìng)能(néng)

在硬(yìng)件(jiàn)優化性能(néng)的(dí)同時,同時也通過軟(ruǎn)件進行性(xìng)能(néng)優化,在大(dà)部分的網站係統中,都(dū)會(huì)利用緩存技術改善係(xì)統(tǒng)的(dí)性(xìng)能(néng),使用(yòng)緩存(cún)主要(yào)源於(yú)熱(rè)點數據的存(cún)在(zài),大(dà)部分(fēn)網(wǎng)站訪(fǎng)問都(dū)遵循28原則(即80%的訪問(wèn)請求,最(zuì)終落在(zài)20%的數據上),所(suǒ)以我們(mén)可(kě)以對(duì)熱點數據進(jìn)行(háng)緩存,減少這些(xiē)數據(jù)的訪(fǎng)問(wèn)路徑(jìng),提(tí)高(gāo)用戶體驗。

大型(xíng)網(wǎng)站係(xì)統(tǒng)架構(gòu)演化之路

緩(huǎn)存實現(xiàn)常見(jiàn)的方式(shì)是本地緩(huǎn)存,分(fēn)布式(shì)緩存。當然還(huán)有(yǒu)CDN,反(fǎn)向(xiàng)代理(lǐ)等(děng),這個後麵再講(jiǎng)。本(běn)地緩存(cún),顧名(míng)思義是將數據緩存(cún)在(zài)應用服務器(qì)本地(dì),可(kě)以(yǐ)存在內存(cún)中(zhōng),也可以(yǐ)存(cún)在文件(jiàn),OSCache就(jiù)是常用的(dí)本地緩(huǎn)存(cún)組件。本地(dì)緩(huǎn)存(cún)的(dí)特點是速(sù)度快,但因為本(běn)地(dì)空(kōng)間(jiān)有(yǒu)限(xiàn)所以緩存(cún)數(shù)據(jù)量(liáng)也有限(xiàn)。分布式(shì)緩存的(dí)特(tè)點是,可(kě)以緩(huǎn)存海量(liáng)的數據(jù),並且(qiě)擴展(zhǎn)非常容易,在(zài)門戶類網(wǎng)站中常(cháng)常(cháng)被使用(yòng),速度按(àn)理(lǐ)沒有本地緩存(cún)快(kuài),常(cháng)用(yòng)的分(fēn)布式緩存是Memcached,Redis。

四(sì),使用集群改善(shàn)應用(yòng)服務(wù)器性能

應用服務器作為(wéi)網站(zhàn)的入(rù)口,會(huì)承(chéng)擔大量的請求,我(wǒ)們(mén)往往(wǎng)通(tōng)過(guò)應用服(fú)務(wù)器(qì)集(jí)群來(lái)分擔(dān)請求數。應用服務(wù)器前(qián)麵(miàn)部(bù)署(shǔ)負(fù)載均(jūn)衡服務器調度(dù)用(yòng)戶(hù)請(qǐng)求,根(gēn)據(jù)分(fēn)發策略將(jiāng)請(qǐng)求(qiú)分發到(dào)多個應(yīng)用(yòng)服務(wù)器(qì)節(jié)點。

大型(xíng)網站(zhàn)係(xì)統架構演化之(zhī)路

常用的(dí)負載均衡技術(shù)硬(yìng)件的(dí)有(yǒu)F5,價(jià)格比較貴(guì),軟件的(dí)有LVS,Nginx,HAProxy。LVS是四層負(fù)載均(jūn)衡,根據目標地址和(hé)端口(kǒu)選擇內部服(fú)務器,Nginx和(hé)HAProxy是七層(céng)負載均(jūn)衡,可以(yǐ)根(gēn)據報(bào)文(wén)內容選(xuǎn)擇內(nèi)部服務器,因此LVS分(fēn)發(fā)路徑優於(yú)Nginx和(hé)HAProxy,性(xìng)能要(yào)高些(xiē),而(ér)Nginx和(hé)HAProxy則(zé)更具(jù)配(pèi)置性(xìng),如可(kě)以用(yòng)來做動(dòng)靜分離(根據請求報(bào)文特(tè)征,選擇(zé)靜(jìng)態資源(yuán)服(fú)務(wù)器還(huán)是應(yīng)用服務器(qì))。

五(wǔ),數據(jù)庫(kù)讀寫分離和分庫(kù)分表

隨(suí)著用(yòng)戶量的增加(jiā),數據(jù)庫成(chéng)為最(zuì)大的瓶頸,改(gǎi)善數(shù)據庫性(xìng)能常用的(dí)手(shǒu)段是進行讀(dú)寫(xiě)分(fēn)離以(yǐ)及(jí)分庫(kù)分表,讀寫分離顧名思義就(jiù)是將(jiāng)數據(jù)庫(kù)分(fēn)為讀庫和(hé)寫庫,通過主(zhǔ)備(bèi)功(gōng)能(néng)實(shí)現(xiàn)數(shù)據同(tóng)步。分庫分表(biǎo)則(zé)分(fēn)為水(shuǐ)平切(qiē)分和垂直(zhí)切分,水(shuǐ)平(píng)切分(fēn)則是對一(yī)個數(shù)據庫(kù)特(tè)大的表進(jìn)行拆(chāi)分,例如用戶表。垂直(zhí)切分則是(shì)根據業務(wù)的不同來切分,如(rú)用(yòng)戶業(yè)務(wù),商(shāng)品(pǐn)業務(wù)相關的(dí)表(biǎo)放在不(bù)同(tóng)的數據(jù)庫(kù)中。

大型(xíng)網站係統架構(gòu)演化之路(lù)

六,使用CDN和(hé)反(fǎn)向代理提高(gāo)網(wǎng)站(zhàn)性能(néng)

假(jiǎ)如我(wǒ)們(mén)的服務(wù)器都(dū)部署(shǔ)在成(chéng)都的(dí)機房,對(duì)於四(sì)川的用戶(hù)來(lái)說訪問是(shì)較快的,而(ér)對於北(běi)京的用(yòng)戶(hù)訪問是較(jiào)慢(màn)的(dí),這(zhè)是由(yóu)於四川和北京分(fēn)別屬(shǔ)於電(diàn)信(xìn)和(hé)聯通的不同發達(dá)地區,北(běi)京(jīng)用戶訪(fǎng)問需(xū)要通過互(hù)聯(lián)路由(yóu)器(qì)經(jīng)過較長的路徑才(cái)能(néng)訪(fǎng)問(wèn)到成(chéng)都(dū)的(dí)服(fú)務(wù)器,返(fǎn)回(huí)路徑也一(yī)樣(yàng),所(suǒ)以數(shù)據(jù)傳(chuán)輸時間(jiān)比較長。對於這種(zhǒng)情況,常常使用CDN解決,CDN將數據內(nèi)容緩存到(dào)運營(yíng)商的(dí)機(jī)房,用(yòng)戶(hù)訪問(wèn)時(shí)先從最(zuì)近的運(yùn)營商(shāng)獲取數據(jù),這樣(yàng)大大減少了(liǎo)網絡訪問的(dí)路(lù)徑。比較專業(yè)的(dí)CDN運營(yíng)商有藍汛,網宿。

而反向代理(lǐ),則是(shì)部(bù)署在網(wǎng)站的機房(fáng),當(dāng)用戶(hù)請(qǐng)求達到時首先(xiān)訪問(wèn)反(fǎn)向代(dài)理(lǐ)服(fú)務(wù)器,反向代(dài)理服務(wù)器(qì)將緩存的數據(jù)返(fǎn)回給用戶,如(rú)果(guǒ)沒有緩(huǎn)存數據(jù)才(cái)會繼續訪問(wèn)應用服務器獲(huò)取,這樣(yàng)做(zuò)減(jiǎn)少了獲取(qǔ)數據的(dí)成本。反向代理(lǐ)有(yǒu)Squid,Nginx。

大(dà)型網站係統架構演(yǎn)化之路(lù)

七(qī),使用分(fēn)布式(shì)文件(jiàn)係(xì)統

用戶(hù)一(yī)天天增加,業務(wù)量(liáng)越(yuè)來(lái)越大,產生的文件越來越多,單台(tái)的文件服務器(qì)已(yǐ)經(jīng)不(bù)能滿足(zú)需(xū)求,這時(shí)就(jiù)需要分布(bù)式(shì)文件係(xì)統(tǒng)的支撐(chēng)。常用的分布式文件係(xì)統(tǒng)有(yǒu)GFS,HDFS,TFS。

大型網站係統架構演化(huà)之路(lù)

八,使(shǐ)用NoSql和搜索引擎

對於(yú)海量數(shù)據的查詢(xún)和分析(xī),我們使用(yòng)nosql數據庫加(jiā)上搜索引(yǐn)擎(qíng)可以(yǐ)達到更(gēng)好的(dí)性能(néng)。並(bìng)不是所有的(dí)數據(jù)都要放(fàng)在關係(xì)型數據中。常用的NOSQL有(yǒu)mongodb,hbase,redis,搜索引(yǐn)擎有(yǒu)lucene,solr,elasticsearch。

大(dà)型網站係(xì)統(tǒng)架(jià)構演化之路(lù)

九(jiǔ),將(jiāng)應(yīng)用服(fú)務器進行業務(wù)拆(chāi)分(fēn)

隨著業(yè)務進(jìn)一(yī)步(bù)擴展,應用程(chéng)序(xù)變得非常臃(yōng)腫(zhǒng),這(zhè)時我們(mén)需要將(jiāng)應(yīng)用程(chéng)序進行業務拆(chāi)分(fēn),如(rú)百(bǎi)度(dù)分為新(xīn)聞,網頁,圖(tú)片(piàn)等業(yè)務(wù)。每(měi)個(gè)業(yè)務應用(yòng)負(fù)責(zé)相對(duì)獨立的(dí)業(yè)務運作(zuò)。業務(wù)之間(jiān)通(tōng)過(guò)消息(xī)進行(háng)通信(xìn)或(huò)者(zhě)共享(xiǎng)數據(jù)庫(kù)來(lái)實(shí)現(xiàn)。

大型網(wǎng)站係(xì)統(tǒng)架構演化(huà)之(zhī)路

十,搭(dā)建分布式服務

這(zhè)時(shí)我們發(fā)現(xiàn)各個(gè)業務應用都會(huì)使用到(dào)一(yī)些基本(běn)的(dí)業務服(fú)務,例如(rú)用戶服務,訂單(dān)服(fú)務(wù),支付服務(wù),安(ān)全(quán)服(fú)務,這些(xiē)服務(wù)是支撐各(gè)業(yè)務(wù)應用的基本要素(sù)。我們將這些(xiē)服(fú)務抽取出(chū)來利用分(fēn)部式(shì)服務框架搭(dā)建(jiàn)分(fēn)布式服(fú)務。阿裏(lǐ)的Dubbo是(shì)一個不錯(cuò)的(dí)選(xuǎn)擇。

大型網(wǎng)站係(xì)統架(jià)構演化之(zhī)路

小結(jié)

大(dà)型網(wǎng)站(zhàn)的(dí)架(jià)構是(shì)根據業務(wù)需求(qiú)不斷完善(shàn)的(dí),根據不(bù)同(tóng)的業(yè)務(wù)特征會(huì)做(zuò)特(tè)定的(dí)設(shè)計和考慮,本文(wén)隻(zhī)是講(jiǎng)述一個常規(guī)大型網(wǎng)站(zhàn)會涉及(jí)的(dí)一(yī)些技術和(hé)手(shǒu)段。

轉載(zǎi)請保留原(yuán)文(wén)地(dì)址: https://antelcom.cn/show-299.html

責(zé)編:王(wáng)麗(lì) 作者(zhě):不詳 來(lái)源:網(wǎng)絡(luò)