大型網站架構體系的演變(上)

本文轉自:http://blog.csdn.net/dinglang_2009/article/details/46398885


互聯網上有很多關於網站架構的各種分享,有些主要是從運維和基礎架構的角度去分析的(堆機器,做集羣),太關注技術細節實現,普通的開發人員基本看不太懂。

本文上篇將主要介紹大型網站基礎架構的擴展,下篇則重點從應用程序的角度去介紹網站架構的擴展和演變。


草根時期,快速開發網站並上線。當然,通常只是先試水,用戶規模也沒有形成,經濟能力和投入也非常有限。


有一定的業務量和用戶規模了,想提升網站速度,於是,緩存出場了。


市場反響還不錯,用戶量每天在增長,數據庫瘋狂讀寫,逐漸發現一臺服務器快撐不住了。於是,決定把DB和APP做分離。


單臺數據庫也感覺快撐不住了,一般都會嘗試做“讀寫分離”。由於大部分互聯網“讀多寫少”的特性所決定的。Salve的臺數,取決於按業務評估的讀寫比例。



數據庫層面是緩解了,但是應用程序層面也出現了瓶頸,由於訪問量增大,加上早期程序員水平有限寫的代碼也很爛,人員流動性也大,很難去維護和優化。所以,很常用的辦法還是“堆機器”。



加機器誰都會加,關鍵是加完之後得有效果,加完之後可能會引發一些問題。例如非常常見的:頁面輸出緩存和本地緩存的問題,Session保存的問題......


到這裏,已經基本做到了DB層面和應用層面的橫向擴展了,可以開始關注一些其它方面,例如:站內搜索的精準度,對DB的依賴,開始引入全文索引。

Java領域用的較多的是Lucene、Solr等,而php領域用的比較多的是sphinx/coreseek。


到目前爲止,一個能夠承載日均百萬級訪問量的中型網站架構基本介紹完了。當然,每一步擴展裏面都會有很多技術實現的細節,後續有時間會寫文章單獨去剖析那些細節。

下篇我們繼續。


發佈了84 篇原創文章 · 獲贊 14 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章