圖解大型網(wǎng)站技術(shù)架構(gòu)演變過程!秒懂
關(guān)注我們,設(shè)為星標(biāo),每天7:30不見不散,架構(gòu)路上與您共享? 回復(fù)"架構(gòu)師"獲取資源
大家好,我是架構(gòu)君,一個會寫代碼吟詩的架構(gòu)師。
1、大型網(wǎng)站的特點
高并發(fā),大流量:PV量巨大。即頁面瀏覽量;用戶每1次對網(wǎng)站中的每個網(wǎng)頁訪問均被記錄1次。用戶對同一頁面的多次訪問,訪問量累計。
高可用:7*24小時不間斷服務(wù)。
海量數(shù)據(jù):需要儲存、管理海量數(shù)據(jù),需要使用大量服務(wù)器。
用戶分布 廣泛,網(wǎng)絡(luò)情況復(fù)雜:為全球用戶提供服務(wù),用戶分布范圍廣。
安全環(huán)境惡劣:黑客攻擊多。
需求快速變更,發(fā)布頻繁:快速適應(yīng)市場,滿足用戶需求。
漸進式發(fā)展:慢慢地運營出大型網(wǎng)站。
2、大型網(wǎng)站架構(gòu)演變過程
初始階段網(wǎng)站架構(gòu)

一臺Server就剛需—應(yīng)用程序、數(shù)據(jù)庫、文件等所有資源都集中在一臺Server上,典型案例:基于LAMP架構(gòu)的PHP網(wǎng)站。
應(yīng)用和數(shù)據(jù)服務(wù)分離

三臺Server平天下—業(yè)務(wù)發(fā)展,單臺不再適應(yīng)業(yè)務(wù)的發(fā)展,將應(yīng)用和數(shù)據(jù)分離后成三臺Sever(應(yīng)用服務(wù)器、文件服務(wù)器與數(shù)據(jù)庫服務(wù)器)。分離后三臺Server對硬件資源的需求各不相同:應(yīng)用服務(wù)器需要更快更強大的CPU,而數(shù)據(jù)庫服務(wù)器需要更快的硬盤和更大的內(nèi)存,文件服務(wù)器則需要更大的硬盤。
使用緩存改善網(wǎng)站性能

3+N的Server模式—減少數(shù)據(jù)庫訪問壓力,提高網(wǎng)站的數(shù)據(jù)訪問速度。緩存又可以分為:本地緩存和遠程緩存(可以是分布式的),本地緩存訪問速度快,但數(shù)據(jù)量有限;遠程分布式緩存可以集群,因此容量不受限制。
使用應(yīng)用服務(wù)器集群改善網(wǎng)站并發(fā)處理能力

集群—解決高并發(fā)、海量數(shù)據(jù)問題的常用手段,實現(xiàn)系統(tǒng)的可伸縮性。通過負載均衡調(diào)度器,可將用戶訪問分發(fā)到集群中的某臺Server上,應(yīng)用服務(wù)器的負載壓力不再成為整個網(wǎng)站的瓶頸。
數(shù)據(jù)庫讀寫分離

隨著用戶量的增加,數(shù)據(jù)庫成為最大的瓶頸,改善數(shù)據(jù)庫性能常用的手段是進行讀寫分離以及分表,讀寫分離顧名思義就是將數(shù)據(jù)庫分為讀庫和寫庫,通過主備功能實現(xiàn)數(shù)據(jù)同步。分庫分表則分為水平切分和垂直切分,水平切換則是對一個數(shù)據(jù)庫特大的表進行拆分,例如用戶表。垂直切分則是根據(jù)業(yè)務(wù)不同來切換,如用戶業(yè)務(wù)、商品業(yè)務(wù)相關(guān)的表放在不同的數(shù)據(jù)庫中。
使用反向代理和CDN加速網(wǎng)站響應(yīng)

CDN和反向代理的基本原理都是緩存,區(qū)別在于CDN部署在網(wǎng)絡(luò)提供商的機房,而反向代理則部署在網(wǎng)站的中心機房。使用CDN和反向代理的目的都是盡早返回數(shù)據(jù)給用戶,一方面加快用戶訪問速度,另一方面也減輕后端服務(wù)器的負載壓力。
使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)

用戶一天天增加,業(yè)務(wù)量越來越大,產(chǎn)生的文件越來越多,單臺的文件服務(wù)器已經(jīng)不能滿足需求。需要分布式的文件系統(tǒng)支撐。
使用NoSQL和搜索引擎

NoSQL和搜索引擎都是源自互聯(lián)網(wǎng)的技術(shù)手段,對可伸縮的分布式特性具有更好的支持。應(yīng)用服務(wù)器則通過一個統(tǒng)一數(shù)據(jù)訪問模塊訪問各種數(shù)據(jù),減輕應(yīng)用程序管理諸多數(shù)據(jù)源的麻煩。
業(yè)務(wù)拆分

隨著業(yè)務(wù)進一步擴展,應(yīng)用程序變得非常臃腫,這時我們需要將應(yīng)用程序進行業(yè)務(wù)拆分,如百度分為新聞、網(wǎng)頁、圖片等業(yè)務(wù)。每個業(yè)務(wù)應(yīng)用負責(zé)相對獨立的業(yè)務(wù)運作。業(yè)務(wù)之間通過消息進行通信或者同享數(shù)據(jù)庫來實現(xiàn)。
分布式服務(wù)

這時我們發(fā)現(xiàn)各個業(yè)務(wù)應(yīng)用都會使用到一些基本的業(yè)務(wù)服務(wù),例如用戶服務(wù)、訂單服務(wù)、支付服務(wù)、安全服務(wù),這些服務(wù)是支撐各業(yè)務(wù)應(yīng)用的基本要素。我們將這些服務(wù)抽取出來利用分部式服務(wù)框架搭建分布式服務(wù)。
文章來源:https://juejin.im/post/5aeea414f265da0ba266e242

這些年小編給你分享過的干貨
1.SpringBoot物流管理項目,拿去學(xué)習(xí)吧(附源碼)
2.ERP系統(tǒng),自帶進銷存+財務(wù)+生產(chǎn)功能,拿來即用(附源碼)
3.帶工作流的SpringBoot后臺管理項目快速開發(fā)(附源碼)
4.最好的OA系統(tǒng),拿來即用,非常方便(附源碼)
5.SpringBoot+Vue完整的外賣系統(tǒng),手機端和后臺管理,附源碼!
6.SpringBoot+Vue 可視化拖拽編輯的大屏項目(附源碼)

轉(zhuǎn)發(fā)在看就是最大的支持??
