中大型网站技术架构演变过程
1、大型網站的特點
- 高并發,大流量:PV量巨大。即頁面瀏覽量;用戶每1次對網站中的每個網頁訪問均被記錄1次。用戶對同一頁面的多次訪問,訪問量累計。
- 高可用:7*24小時不間斷服務。
- 海量數據:需要儲存、管理海量數據,需要使用大量服務器。
- 用戶分布 廣泛,網絡情況復雜:為全球用戶提供服務,用戶分布范圍廣。
- 安全環境惡劣:黑客攻擊多。
- 需求快速變更,發布頻繁:快速適應市場,滿足用戶需求。
- 漸進式發展:慢慢地運營出大型網站。
2、大型網站架構演變過程
- 初始階段網站架構
一臺Server就剛需—應用程序、數據庫、文件等所有資源都集中在一臺Server上,典型案例:基于LAMP架構的PHP網站。
- 應用和數據服務分離
三臺Server平天下—業務發展,單臺不再適應業務的發展,將應用和數據分離后成三臺Sever(應用服務器、文件服務器與數據庫服務器)。分離后三臺Server對硬件資源的需求各不相同:應用服務器需要更快更強大的CPU,而數據庫服務器需要更快的硬盤和更大的內存,文件服務器則需要更大的硬盤。
- 使用緩存改善網站性能
3+N的Server模式—減少數據庫訪問壓力,提高網站的數據訪問速度。緩存又可以分為:本地緩存和遠程緩存(可以是分布式的),本地緩存訪問速度快,但數據量有限;遠程分布式緩存可以集群,因此容量不受限制。
- 使用應用服務器集群改善網站并發處理能力
集群—解決高并發、海量數據問題的常用手段,實現系統的可伸縮性。通過負載均衡調度器,可將用戶訪問分發到集群中的某臺Server上,應用服務器的負載壓力不再成為整個網站的瓶頸。
- 數據庫讀寫分離
隨著用戶量的增加,數據庫成為最大的瓶頸,改善數據庫性能常用的手段是進行讀寫分離以及分表,讀寫分離顧名思義就是將數據庫分為讀庫和寫庫,通過主備功能實現數據同步。分庫分表則分為水平切分和垂直切分,水平切換則是對一個數據庫特大的表進行拆分,例如用戶表。垂直切分則是根據業務不同來切換,如用戶業務、商品業務相關的表放在不同的數據庫中。
- 使用反向代理和CDN加速網站響應
CDN和反向代理的基本原理都是緩存,區別在于CDN部署在網絡提供商的機房,而反向代理則部署在網站的中心機房。使用CDN和反向代理的目的都是盡早返回數據給用戶,一方面加快用戶訪問速度,另一方面也減輕后端服務器的負載壓力。
- 使用分布式文件系統和分布式數據庫系統
用戶一天天增加,業務量越來越大,產生的文件越來越多,單臺的文件服務器已經不能滿足需求。需要分布式的文件系統支撐。
- 使用NoSQL和搜索引擎
NoSQL和搜索引擎都是源自互聯網的技術手段,對可伸縮的分布式特性具有更好的支持。應用服務器則通過一個統一數據訪問模塊訪問各種數據,減輕應用程序管理諸多數據源的麻煩。
- 業務拆分
隨著業務進一步擴展,應用程序變得非常臃腫,這時我們需要將應用程序進行業務拆分,如百度分為新聞、網頁、圖片等業務。每個業務應用負責相對獨立的業務運作。業務之間通過消息進行通信或者同享數據庫來實現。
- 分布式服務
這時我們發現各個業務應用都會使用到一些基本的業務服務,例如用戶服務、訂單服務、支付服務、安全服務,這些服務是支撐各業務應用的基本要素。我們將這些服務抽取出來利用分部式服務框架搭建分布式服務。
總結
以上是生活随笔為你收集整理的中大型网站技术架构演变过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ登录的那些坑(如何开发qq登陆功能)
- 下一篇: WebStorm添加多个项目到当前工程目