大型網站的架構演進
大型網站的技術問題主要來自于用戶多、同時訪問量大、數據量大。處理數以P計的數據和數以百萬計的用戶,問題就會變得非常困難。大型網站架構的主要目的就是解決這些問題。在面對一個大型網站時,首先要討論的是大型網站的特點:高并發性、大流量、高可用性、海量數據。我們今天就來了解一下大型網站架構演化發展歷程。
1.初始階段:大型網站都是從小型網站架構逐步演化而來。通常一臺服務器就綽綽有余。
2.采取應用數據分離:隨著網站業務的發展,服務器逐漸不能滿足需求,這時就需要應用和數據分離。應用與數據分離后,整個網站使用三個服務器:應用服務器、文件服務器和數據庫服務器。
3.使用緩存改善網站性能:80%的業務訪問集中在20%的數據上,將這一小部分數據存入內存就可以減少數據庫訪問的壓力。網站使用的緩存一般分為兩種:應用服務器上的本地緩存和分布式緩存服務器上的遠程緩存。
4.使用應用服務器集群:使用集群是解決高并發、數據量大等問題的常用手段。由于單個應用服務器處理能力有限,網站訪問高峰期會造成“擁堵”現象。因此,有必要使用負載均衡處理器。可以將訪問請求從瀏覽器分發到應用服務器集群中的任何服務器。
5.數據庫讀寫分離:目前主流數據庫大多提供主從設備功能。通過在一個數據庫中建立主從關系,一個數據庫服務器的數據更新可以同步到另一個服務器。利用這一特性,實現了數據庫加載與寫入分離,減輕了數據庫的負載壓力
6.使用反向代理和CDN加速網站響應:CDN和逆代理的基本原理是緩存,不同之處在于,當用戶請求網站服務時,CDN可以部署到網絡提供商的機房,并從最近的網絡提供商機房獲取數據。當用戶的請求到達中央計算機室時,首先訪問的服務器是反向代理服務器。如果反向代理服務器中緩存用戶請求的資源,它將直接返回給用戶。
7.使用分布式文件系統和分布式數據庫系統:只有當單個表的數據規模非常大時,才會使用分布式數據庫拆分網站數據庫。通常,更常用的數據庫分區方法是在不同的物理服務器上部署不同業務數據的業務部門。
8.使用NoSQL和搜索引擎:NoSQL和搜索引擎是一種互聯網技術手段,對可伸縮的分布式功能有更好的支持。應用服務器可以通過一個統一的數據訪問模塊訪問所有類型的數據,減輕管理多個數據源的繁瑣。
9.業務拆分:大型網站被分成許多不同的應用,每個應用都是獨立部署和維護的。可以通過超鏈接建立應用之間的關系,通過消息隊列進行數據分發。當然,最常見的方法是訪問同一個數據存儲系統以形成一個相關的完整系統。
10.分布式服務:每個應用系統需要執行的相同的業務操作,可以連接到數據庫,提供通用的業務服務,而應用系統只需要管理一個用戶界面,并通過分布式服務調用一個通用的業務服務來完成特定的任務。
當一個大型網站演化到此,大多數技術問題,如跨數據中心的實時數據同步,以及特定的網站業務相關問題是現有的技術架構,都可以通過合并和改進現有技術架構來解決。
- 上一篇:青島做外貿網站哪家好?
- 下一篇:好看的英文字體收藏,再也不怕設計英文網站了!
相關內容推薦
最新文章
更多>>0532-88983785 / 0532-68613670
我要定制網站