1、初始階段的網站架構
初始階段的網站架構比較簡單,通常應用程序、數據庫、文件等所有資源都在一臺服務器上,通常使用Linux PHP MySQL Apache就可以完成整個項目部署
2、應用服務和數據服務分離
隨著網站業務的發展,一臺服務器逐漸不能滿足需求之后,此時則需要將應用和數據分離,各個職責變得更加專一,網站的性能得到進一步的提升,隨著用戶的繼續增加,也需要對網站架構進一步優化。例如,應用服務器可處理大量的業務邏輯,需要更好更快更強大的CPU;數據庫服務器,需要快速的進行磁盤檢索和數據緩存,需要更快的硬盤和更大的內存;文件服務器需要存儲用戶上傳的文件資源,需要更大的硬盤存儲空間。
3、使用緩存改善網站性能
網站的緩存可以分為兩種,緩存在應用服務器上的本地緩存和緩存在專門的分布式緩存服務器上的遠程緩存。本地緩存的訪問速度會快一些,但是受應用服務器內存限制,緩存數據量很有限,而且會出現內存爭用的情況;遠程分布式緩存可使用集群的方式,部署大內存的服務器作為專門的緩存服務器,可以在理論上做到不受內存容量限制的緩存服務。
4、使用應用服務器集群改善網站的并發處理能力
因為單一應用服務器能夠處理的請求連接有限,在網站訪問高峰時期,應用服務器會成為整個網站的瓶頸。因此使用負載均衡處理器勢在必然。通過負載均衡調度服務器,可將來自瀏覽器的訪問請求分發到應用的集群中的任何一臺服務器上。
5、數據庫讀寫分離
當用戶達到一定規模后,數據庫因為負載壓力過高而成為網站的瓶頸。此時可利用數據庫這一功能實現數據庫讀寫分離,從而改善數據庫負載壓力。應用服務器在寫操作的時候,訪問主數據庫,主數據庫通過主從復制機制把數據同步更新到從數據庫。
6、使用反向代理和CDN加上網站相應
提高網站的訪問速度,主要手段有使用CDN和反向代理。CDN和反向代理的基本原理都是緩存,區別在于CDN部署在網絡提供商的機房,而反向代理是部署在網站的中心機房,當用戶請求到達中心機房后,首先訪問的反向代理,如果反向代理緩存著用戶請求的資源,則直接返回給用戶。
7、使用分布式文件系統和分布式數據庫系統
分布式數據庫時網站數據庫拆分的最后手段,只用在單表數據規模非常大的時候才使用。網站更常用的數據庫拆分手段是業務拆分,將不同業務的數據部署在不同的物理服務器上。
8、使用NoSQL和搜索引擎
搜素引擎也基本已經形成現在大型網站必須提供的功能了,網站需要采用一些非關系數據庫技術如NoSQL和非數據庫查詢技術如搜索引擎。
9、業務拆分
對于大型網站,可以分而治之,把整個網站的業務分為不同的模塊,分別由不同的團隊來負責,同時將一個網站根據模塊劃分拆分成多個應用,每個應用進行單獨的部署和維護,應用之間通過超鏈接建立關系,最后通過相同的數據存儲系統來構成一個互相關聯的完整系統。
10、分布式服務
分布式服務可對相同的業務進行提取,獨立部署,把這些可重用的業務和連接數據庫等,提取出來作為公共業務服務,而應用系統只需要通過分布式服務訪問公共業務服務完成業務操作。
了解更多服務器及資訊,請關注夢飛科技官方網站,感謝您的支持!