大型網(wǎng)站的架構(gòu)方案.doc

大型網(wǎng)站的架構(gòu)方案.doc

ID:55574205

大?。?26.50 KB

頁數(shù):11頁

時間:2020-05-18

大型網(wǎng)站的架構(gòu)方案.doc_第1頁
大型網(wǎng)站的架構(gòu)方案.doc_第2頁
大型網(wǎng)站的架構(gòu)方案.doc_第3頁
大型網(wǎng)站的架構(gòu)方案.doc_第4頁
大型網(wǎng)站的架構(gòu)方案.doc_第5頁
資源描述:

《大型網(wǎng)站的架構(gòu)方案.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、之前我簡單向大家介紹了各個知名大型網(wǎng)站的架構(gòu),MySpace的五個里程碑、Flickr的架構(gòu)、YouTube的架構(gòu)、PlentyOfFish的架構(gòu)、WikiPedia的架構(gòu)。這幾個都很典型,我們可以從中獲取很多有關(guān)網(wǎng)站架構(gòu)方面的知識,看了之后你會發(fā)現(xiàn)你原來的想法很可能是狹隘的。  今天我們來談?wù)勔粋€網(wǎng)站一般是如何一步步來構(gòu)建起系統(tǒng)架構(gòu)的,雖然我們希望網(wǎng)站一開始就能有一個很好的架構(gòu),但馬克思告訴我們事物是在發(fā)展中不斷前進的,網(wǎng)站架構(gòu)也是隨著業(yè)務(wù)的擴大、用戶的需求不斷完善的,下面是一個網(wǎng)站架構(gòu)逐步發(fā)展的基本過程,

2、讀完后,請思考,你現(xiàn)在在哪個階段?! 〖軜?gòu)演變第一步:物理分離WebServer和數(shù)據(jù)庫  最開始,由于某些想法,于是在互聯(lián)網(wǎng)上搭建了一個網(wǎng)站,這個時候甚至有可能主機都是租借的,但由于這篇文章我們只關(guān)注架構(gòu)的演變歷程,因此就假設(shè)這個時候已經(jīng)是托管了一臺主機,并且有一定的帶寬了。這個時候由于網(wǎng)站具備了一定的特色,吸引了部分人訪問,逐漸你發(fā)現(xiàn)系統(tǒng)的壓力越來越高,響應(yīng)速度越來越慢,而這個時候比較明顯的是數(shù)據(jù)庫和應(yīng)用互相影響,應(yīng)用出問題了,數(shù)據(jù)庫也很容易出現(xiàn)問題,而數(shù)據(jù)庫出問題的時候,應(yīng)用也容易出問題。于是進入了第一

3、步演變階段:將應(yīng)用和數(shù)據(jù)庫從物理上分離,變成了兩臺機器,這個時候技術(shù)上沒有什么新的要求,但你發(fā)現(xiàn)確實起到效果了,系統(tǒng)又恢復(fù)到以前的響應(yīng)速度了,并且支撐住了更高的流量,并且不會因為數(shù)據(jù)庫和應(yīng)用形成互相的影響?! 】纯催@一步完成后系統(tǒng)的圖示:  架構(gòu)演變第二步:增加頁面緩存  好景不長,隨著訪問的人越來越多,你發(fā)現(xiàn)響應(yīng)速度又開始變慢了,查找原因,發(fā)現(xiàn)是訪問數(shù)據(jù)庫的操作太多,導(dǎo)致數(shù)據(jù)連接競爭激烈,所以響應(yīng)變慢。但數(shù)據(jù)庫連接又不能開太多,否則數(shù)據(jù)庫機器壓力會很高,因此考慮采用緩存機制來減少數(shù)據(jù)庫連接資源的競爭和對數(shù)據(jù)

4、庫讀的壓力。這個時候首先也許會選擇采用squid等類似的機制來將系統(tǒng)中相對靜態(tài)的頁面(例如一兩天才會有更新的頁面)進行緩存(當(dāng)然,也可以采用將頁面靜態(tài)化的方案),這樣程序上可以不做修改,就能夠很好的減少對WebServer的壓力以及減少數(shù)據(jù)庫連接資源的競爭,OK,于是開始采用squid來做相對靜態(tài)的頁面的緩存?! 】纯催@一步完成后系統(tǒng)的圖示:  這一步涉及到了這些知識體系:  前端頁面緩存技術(shù),例如squid,如想用好的話還得深入掌握下squid的實現(xiàn)方式以及緩存的失效算法等。  架構(gòu)演變第三步:增加頁面片段

5、緩存  增加了squid做緩存后,整體系統(tǒng)的速度確實是提升了,WebServer的壓力也開始下降了,但隨著訪問量的增加,發(fā)現(xiàn)系統(tǒng)又開始變的有些慢了。在嘗到了squid之類的動態(tài)緩存帶來的好處后,開始想能不能讓現(xiàn)在那些動態(tài)頁面里相對靜態(tài)的部分也緩存起來呢,因此考慮采用類似ESI之類的頁面片段緩存策略,OK,于是開始采用ESI來做動態(tài)頁面中相對靜態(tài)的片段部分的緩存?! 】纯催@一步完成后系統(tǒng)的圖示:  這一步涉及到了這些知識體系:  頁面片段緩存技術(shù),例如ESI等,想用好的話同樣需要掌握ESI的實現(xiàn)方式等;  架構(gòu)

6、演變第四步:數(shù)據(jù)緩存  在采用ESI之類的技術(shù)再次提高了系統(tǒng)的緩存效果后,系統(tǒng)的壓力確實進一步降低了,但同樣,隨著訪問量的增加,系統(tǒng)還是開始變慢。經(jīng)過查找,可能會發(fā)現(xiàn)系統(tǒng)中存在一些重復(fù)獲取數(shù)據(jù)信息的地方,像獲取用戶信息等,這個時候開始考慮是不是可以將這些數(shù)據(jù)信息也緩存起來呢,于是將這些數(shù)據(jù)緩存到本地內(nèi)存,改變完畢后,完全符合預(yù)期,系統(tǒng)的響應(yīng)速度又恢復(fù)了,數(shù)據(jù)庫的壓力也再度降低了不少?! 】纯催@一步完成后系統(tǒng)的圖示:  這一步涉及到了這些知識體系:  緩存技術(shù),包括像Map數(shù)據(jù)結(jié)構(gòu)、緩存算法、所選用的框架本身的

7、實現(xiàn)機制等?! 〖軜?gòu)演變第五步:增加WebServer  好景不長,發(fā)現(xiàn)隨著系統(tǒng)訪問量的再度增加,webserver機器的壓力在高峰期會上升到比較高,這個時候開始考慮增加一臺webserver,這也是為了同時解決可用性的問題,避免單臺的webserverdown機的話就沒法使用了,在做了這些考慮后,決定增加一臺webserver,增加一臺webserver時,會碰到一些問題,典型的有:  1、如何讓訪問分配到這兩臺機器上,這個時候通常會考慮的方案是Apache自帶的負載均衡方案,或LVS這類的軟件負載均衡方案

8、;  2、如何保持狀態(tài)信息的同步,例如用戶session等,這個時候會考慮的方案有寫入數(shù)據(jù)庫、寫入存儲、cookie或同步session信息等機制等;  3、如何保持數(shù)據(jù)緩存信息的同步,例如之前緩存的用戶數(shù)據(jù)等,這個時候通常會考慮的機制有緩存同步或分布式緩存;  4、如何讓上傳文件這些類似的功能繼續(xù)正常,這個時候通常會考慮的機制是使用共享文件系統(tǒng)或存儲等;  在解決了這些問題后,終于是把webser

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。