網站架構設計演變歷程-從應用和資料分離設計到使用快取技術
小型網站因為訪問量小,應用程式、資料庫、檔案等資源部署在一臺伺服器上,對於網站應用綽綽有餘。但是,隨著網站業務的發展,一臺伺服器逐漸不能滿足需求: 越來越多的使用者訪問導致效能越來越差,越來越多的資料儲存導致儲存空間不足 。這個時候,就需要將應用和資料分離。應用程式和資料分離後整個網站可以使用三臺伺服器:應用伺服器、檔案伺服器和資料庫伺服器,如圖所示:

應用和資料分離
這三臺伺服器對硬體資源的要求各不相同,應用伺服器需要處理大量的業務邏輯,因此需要更快更強大的CPU;資料庫伺服器需要快速磁碟檢索和資料快取,因此需要更快的硬碟和更大的記憶體;檔案伺服器需要儲存大量使用者上傳的檔案,因此需要更大的硬碟。
應用和資料分離後,不同特性的伺服器承擔不同的服務角色,網站的併發處理能力和資料儲存空間得到了很大改善,支援網站業務進一步發展。但是隨著使用者逐漸增多,網站又一次面臨挑戰: 資料庫壓力太大導致訪問延遲,進而影響整個網站的效能,使用者體驗受到影響。
我們知道,通常大部分的業務訪問會集中在一小部分資料上,那麼如果把這一小部分資料快取在記憶體中,將會減少資料庫的訪問壓力,提高整個網站的資料訪問速度,改善資料庫的讀寫效能。網站使用的快取可以分為兩種:快取在應用伺服器上的本地快取和快取在專門的分散式快取伺服器上的遠端快取。如下圖所示:

網站使用快取
本地快取的訪問速度更快一些,但是受到應用伺服器的記憶體限制,其快取資料量有限,而且會出現和應用程式爭搶記憶體的情況。遠端分散式快取可以使用叢集方式,部署大記憶體的伺服器作為專門的快取伺服器,可以在理論上做到不受記憶體容量限制的快取服務。
結束語:使用快取後,資料訪問壓力得到有效緩解,但是單一應用伺服器能夠處理的請求連線有限,在網站訪問高峰期,應用伺服器會成為整個網站的瓶頸。因此,還需要進一步改善應用伺服器架構設計策略。