web架構(gòu)演變過程(轉(zhuǎn))

大型互聯(lián)網(wǎng)應(yīng)用系統(tǒng)的特點(diǎn)

1.高并發(fā),大流量。如淘寶雙十一活動(dòng)

2.高可用。系統(tǒng)7*24小時(shí)不間斷服務(wù),保持服務(wù)的高度可用性

3.海量數(shù)據(jù)。需要存儲,管理海量數(shù)據(jù),需要使用大量服務(wù)器

4.用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜。如國內(nèi),各個(gè)運(yùn)營商網(wǎng)絡(luò)互通難

5.安全環(huán)境惡劣。容易被黑客攻擊

6.需求快速變更,發(fā)布頻繁?;ヂ?lián)網(wǎng)產(chǎn)品快速適應(yīng)市場,滿足用戶需求,其產(chǎn)品發(fā)布頻率是極高的

7.漸進(jìn)式發(fā)展。好的互聯(lián)網(wǎng)產(chǎn)品都是慢慢運(yùn)營出來的,不是一開始就開發(fā)好的。

大型網(wǎng)站架構(gòu)演化發(fā)展歷程

大型網(wǎng)站的技術(shù)挑戰(zhàn)主要來自于龐大的用戶,高并發(fā)的訪問和海量的數(shù)據(jù)。

初始階段

小型網(wǎng)站最開始沒有太多人訪問,一臺服務(wù)器綽綽有余

應(yīng)用程序,數(shù)據(jù)庫,文件等所有的資源都在一臺服務(wù)器上

應(yīng)用服務(wù)和數(shù)據(jù)庫分離

三臺服務(wù)器:應(yīng)用服務(wù)器,文件服務(wù)器,數(shù)據(jù)庫服務(wù)器

應(yīng)用服務(wù)器需要處理大量的邏輯,所以需要強(qiáng)大的CPU

數(shù)據(jù)庫服務(wù)器需要快速磁盤檢索和數(shù)據(jù)緩存,所以需要更大的內(nèi)存和更快的硬盤

文件服務(wù)器需要存儲大量用戶上傳的文件,所以需要更大的硬盤

使用緩存改善網(wǎng)站性能

隨著用戶量逐漸增大,數(shù)據(jù)庫壓力太大導(dǎo)致訪問延遲,進(jìn)而影響網(wǎng)站的性能。網(wǎng)站訪問特點(diǎn)和現(xiàn)實(shí)世界的財(cái)富分配一樣遵循二八定律:80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上。所以我們可以把這一小部分?jǐn)?shù)據(jù)緩存在內(nèi)存中,從而減小數(shù)據(jù)庫的訪問壓力。

緩存分兩種:緩存在應(yīng)用服務(wù)器上的本地緩存和緩存在專門的分布式緩存服務(wù)器上的遠(yuǎn)程緩存。本地緩存訪問速度更快,但受制于服務(wù)器內(nèi)存,遠(yuǎn)程分布式緩存可以使用集群的方式,部署大內(nèi)存的服務(wù)器作為專門的緩存服務(wù)器,理論上可以做到不受內(nèi)存容量限制的緩存服務(wù)

使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力

使用緩存后,數(shù)據(jù)訪問壓力得到有效緩解,但是單一應(yīng)用服務(wù)器能夠處理的請求連接有限,在網(wǎng)站訪問高峰期,應(yīng)用服務(wù)器成為整個(gè)網(wǎng)站的瓶頸

對于網(wǎng)站架構(gòu)而言,只要能通過增加一臺服務(wù)器的方式改善負(fù)載壓力,就可以以同樣的方式持續(xù)增加服務(wù)器不斷改善系統(tǒng)性能,從而實(shí)現(xiàn)系統(tǒng)的可伸縮性。

通過負(fù)載均衡調(diào)度服務(wù)器,將來自用戶瀏覽器的訪問請求分發(fā)到應(yīng)用服務(wù)器集群中的任何一臺服務(wù)器上,如果很更多的用戶,就在集群中加入更多的應(yīng)用服務(wù)器,使應(yīng)用服務(wù)器的負(fù)載壓力不再成為整個(gè)網(wǎng)站的瓶頸。

數(shù)據(jù)庫讀寫分離

使用緩存后,仍有一部分的讀操作(緩存訪問不命中,緩存過期)和全部的寫操作需要訪問數(shù)據(jù)庫,用戶達(dá)到一定規(guī)模后,數(shù)據(jù)庫因?yàn)樨?fù)載壓力過高會(huì)成為網(wǎng)站的瓶頸。

利用主流數(shù)據(jù)庫自帶的主從熱備功能,通過配置兩臺數(shù)據(jù)庫主從關(guān)系,可以將一臺數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新同步到另一臺服務(wù)器上,網(wǎng)站利用數(shù)據(jù)庫這一功能實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離,從而改善數(shù)據(jù)庫負(fù)載壓力

應(yīng)用服務(wù)器在寫數(shù)據(jù)的時(shí)候,訪問主數(shù)據(jù)庫,主數(shù)據(jù)庫通過主從復(fù)制機(jī)制將數(shù)據(jù)更新到從數(shù)據(jù)庫,這樣當(dāng)應(yīng)用服務(wù)器讀數(shù)據(jù)的時(shí)候,就可以從數(shù)據(jù)庫獲得數(shù)據(jù)

使用反向代理和CDN加速網(wǎng)站響應(yīng)

網(wǎng)站業(yè)務(wù)不斷發(fā)展,用戶規(guī)模越來越大,由于中國復(fù)雜的網(wǎng)絡(luò)環(huán)境,不同地區(qū)的用戶訪問網(wǎng)站時(shí),速度差別極大,為了更好的用戶體驗(yàn),需要加速網(wǎng)站的訪問速度,主要手段有使用CDN和反向代理

(通常的代理服務(wù)器,只用于代理內(nèi)部網(wǎng)絡(luò)對Internet的連接請求,客戶機(jī)必須指定代理服務(wù)器,并將本來要直接發(fā)送到Web服務(wù)器上的http請求發(fā)送到代理服務(wù)器中)

反向代理服務(wù)器接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端)

CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))和反向代理的基本原理都是緩存,區(qū)別在于CDN部署在網(wǎng)絡(luò)提供商的機(jī)房,使用戶在請求網(wǎng)站服務(wù)時(shí),可以從距離自己最近的網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù)

而反向代理則部署在網(wǎng)站的中心機(jī)房,當(dāng)用戶請求到達(dá)中心機(jī)房后,首先訪問的服務(wù)器是反向代理服務(wù)器,如果緩存著用戶請求的資源,就將其直接返回給用戶

使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)

分布式數(shù)據(jù)庫是網(wǎng)站數(shù)據(jù)庫拆分的最后手段,只有在單表數(shù)據(jù)規(guī)模非常龐大的時(shí)候才使用。不到萬不得已的時(shí)候,網(wǎng)站更加常用的數(shù)據(jù)庫拆分手段是業(yè)務(wù)分庫,將不同業(yè)務(wù)的數(shù)據(jù)庫部署在不同的物理服務(wù)器

使用NoSQL和搜索引擎

隨著業(yè)務(wù)越來越復(fù)雜,對數(shù)據(jù)存儲和檢索的需求也越來越復(fù)雜。

業(yè)務(wù)拆分

大型網(wǎng)站為了應(yīng)對日益復(fù)雜的業(yè)務(wù)場景,通過使用分而治之的手段將整個(gè)網(wǎng)站業(yè)務(wù)分為不同的產(chǎn)品線,分歸不同的業(yè)務(wù)團(tuán)隊(duì)負(fù)責(zé)。

各應(yīng)用之間可以通過一個(gè)超鏈接建立關(guān)系,也可以通過消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā),當(dāng)然最多的還是通過訪問同一數(shù)據(jù)存儲系統(tǒng)來構(gòu)成一個(gè)關(guān)聯(lián)的完整系統(tǒng)。

分布式服務(wù)

隨著業(yè)務(wù)拆分越來越小,存儲系統(tǒng)越來越龐大,應(yīng)用系統(tǒng)的整體復(fù)雜度呈指數(shù)級增加,部署維護(hù)越來越困難,且如果服務(wù)器數(shù)據(jù)過多,各種連接關(guān)系會(huì)很復(fù)雜,數(shù)據(jù)庫連接資源不足,拒絕服務(wù)。

每一個(gè)應(yīng)用系統(tǒng)都需要執(zhí)行許多相同的業(yè)務(wù)操作,比如用戶管理、商品管理等。那么可以將這些共用的業(yè)務(wù)提取出來,獨(dú)立部署。由這些可復(fù)用的業(yè)務(wù)連接數(shù)據(jù)庫,提供共用業(yè)務(wù)服務(wù),而應(yīng)用系統(tǒng)只需要管理用戶界面,通過分布式服務(wù)調(diào)用共用業(yè)務(wù)服務(wù)完成具體業(yè)務(wù)操作。




轉(zhuǎn)自blog.csdn.net/kingice1014/article/details/52118697

最后編輯于
?著作權(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)容