培訓(xùn)無憂網(wǎng)合作機構(gòu) > 學(xué)校機構(gòu) > 長沙牛耳教育歡迎您!
Web前端開發(fā)課程長沙有培訓(xùn)班嗎
發(fā)布時間:2021-09-22 14:25:29
在IT培訓(xùn)中,
大型網(wǎng)站的特點:
高并發(fā)、大流量:需要面對高并發(fā)用戶,大流量訪問。
高可用:需要7x24小時不間斷服務(wù)。
海量數(shù)據(jù):數(shù)據(jù)需要存儲、管理,需要大量服務(wù)器。
用戶分步廣泛、網(wǎng)絡(luò)情況復(fù)雜:全球網(wǎng)絡(luò)復(fù)雜,像國內(nèi)還有各個運營商網(wǎng)絡(luò)互通難的問題。
安全環(huán)境惡劣:互聯(lián)網(wǎng)開放性,使得網(wǎng)站易受到攻擊。
需求快速變更,發(fā)布頻繁:快速迭代。
漸進式發(fā)展:從小網(wǎng)站開始,逐漸發(fā)展成大站點。
大型網(wǎng)站的主要技術(shù)挑戰(zhàn)
龐大的用戶,高并發(fā)的訪問和海量數(shù)據(jù)。任何簡單業(yè)務(wù)在處理PB級數(shù)據(jù)或數(shù)以億計的用戶時,問題就會變得棘手。
大型網(wǎng)站架構(gòu)的演化過程
1、初始階段的網(wǎng)站架構(gòu)
大多數(shù)小項目的初期架構(gòu)都是這樣。隨著網(wǎng)站業(yè)務(wù)發(fā)展,1臺服務(wù)器無法滿足需求:用戶越來越多,網(wǎng)站性能越來越差,越來越多的數(shù)據(jù)導(dǎo)致存儲空間不足。
2、應(yīng)用、數(shù)據(jù)庫、文件分離
應(yīng)用服務(wù)與數(shù)據(jù)服務(wù)分離:提高性能,解決存儲問題。【服務(wù)器專用化】
應(yīng)用服務(wù)器:處理業(yè)務(wù),要求CPU強
文件服務(wù)器:存儲文件,要求存儲容量大
數(shù)據(jù)庫服務(wù)器:存儲數(shù)據(jù)、緩存、磁盤檢索,要求內(nèi)存、硬盤速度快
隨著用戶量增多,數(shù)據(jù)庫壓力大,會成為系統(tǒng)瓶頸。
3、用緩存改善網(wǎng)站性能
二八定律:80%的業(yè)務(wù)訪問20%的數(shù)據(jù)。所以常用數(shù)據(jù)放入緩存,可以減少數(shù)據(jù)庫的壓力。
緩存分為兩種:
本地緩存:訪問更快,但受應(yīng)用服務(wù)器內(nèi)存限制,且會出現(xiàn)和應(yīng)用程序爭用內(nèi)存的情況。
分布式緩存:集群方式,專用服務(wù)器作為緩存服務(wù)器,理論上不受內(nèi)存容量限制。
目前只有單個應(yīng)用服務(wù)器,且只部署了一個實例,其能夠處理的連接數(shù)有限,在網(wǎng)站訪問高峰期時,應(yīng)用服務(wù)器會變成瓶頸。
4、使用應(yīng)用集群改善網(wǎng)站的并發(fā)能力
一臺服務(wù)器的處理能力不足時,不要考慮去換更強大的服務(wù)器,對于大型網(wǎng)站而言,不管多么強大的服務(wù)器,都滿足不了網(wǎng)站持續(xù)增長的業(yè)務(wù)需求。最好的方式是添加更多的服務(wù)器來分擔(dān)原有服務(wù)器的訪問。
5、數(shù)據(jù)庫讀寫分離
數(shù)據(jù)庫還存在的的問題:使用緩存后,依然會有部分讀操作(緩存沒有命中,緩存過期等)和所有的寫操作需要訪問數(shù)據(jù)庫。在網(wǎng)站用戶達到一定規(guī)模后,數(shù)據(jù)庫依然會因為負載較高成為系統(tǒng)瓶頸。
解決辦法:采用數(shù)據(jù)庫讀寫分離,兩臺數(shù)據(jù)庫配置主從關(guān)系,從主庫寫數(shù)據(jù),從從庫讀數(shù)據(jù),主庫的數(shù)據(jù)會同步到從庫中。
為了便于應(yīng)用程序能夠透明地訪問讀寫分離的數(shù)據(jù)庫,所以在應(yīng)用程序中使用專門的數(shù)據(jù)訪問模塊。
6、使用反向代理緩存和CDN加速網(wǎng)站響應(yīng):網(wǎng)絡(luò)環(huán)境復(fù)雜,緩存前端靜態(tài)資源
請求訪問存在的問題:隨著網(wǎng)站持續(xù)的發(fā)展,發(fā)現(xiàn)不同網(wǎng)絡(luò)環(huán)境的用戶訪問速度不同。
解決辦法:使用反向代理緩存和CDN加速網(wǎng)站響應(yīng)。
CDN和反向代理的基本原理:都是緩存,區(qū)別在于CDN部署在網(wǎng)絡(luò)提供商的機房,使用戶在請求網(wǎng)站服務(wù)時,可以從距離自己最近的網(wǎng)絡(luò)提供商機房獲取數(shù)據(jù);而反向代理則部署在網(wǎng)站的中心機房中,從用戶請求達到中心機房后,首先訪問的服務(wù)器是反向代理服務(wù)器,如果反向代理服務(wù)器中緩存著用戶請求的資源,就將其直接返回給用戶。
CDN和反向代理的目的:盡早返回數(shù)據(jù)給用戶,一方面加快用戶訪問速度,另一方面減輕應(yīng)用服務(wù)器的負載壓力。
7、使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)
隨著網(wǎng)站業(yè)務(wù)發(fā)展,原有讀寫分離的數(shù)據(jù)庫也不能支撐。另外,原有的文件服務(wù)器也無法滿足需求了。
這時,需要使用分布式數(shù)據(jù)庫和分布式文件系統(tǒng)。
分布式數(shù)據(jù)庫是網(wǎng)站數(shù)據(jù)庫拆分的最后手段,只有在單表數(shù)據(jù)規(guī)模非常龐大時才使用。
網(wǎng)站更常用的數(shù)據(jù)庫拆分手段是業(yè)務(wù)分庫,將不同的業(yè)務(wù)數(shù)據(jù)部署在不同的物理服務(wù)器上。
8、使用NoSQL和搜索引擎
隨著業(yè)務(wù)越來越復(fù)雜,對數(shù)據(jù)存儲和檢索的需求也越來越復(fù)雜,網(wǎng)站需要采用NoSQL和非數(shù)據(jù)庫查詢技術(shù)比如搜索引擎。
9、業(yè)務(wù)拆分(分治)
網(wǎng)站過于復(fù)雜,將業(yè)務(wù)拆分。比如商城拆分為首頁、店鋪、訂單、買家、賣家等產(chǎn)品線,歸不同的業(yè)務(wù)團隊負責(zé)。具體到技術(shù),也會根據(jù)產(chǎn)品線劃分,將一個網(wǎng)站拆分為多個應(yīng)用,每個應(yīng)用獨立部署維護。
應(yīng)用之間可以通過一個超鏈接建立關(guān)系(在首頁的導(dǎo)航鏈接指向不同的應(yīng)用地址),也可以通過消息隊列進行數(shù)據(jù)分發(fā),當然最多的還是通過訪問同一個數(shù)據(jù)存儲系統(tǒng)來構(gòu)成一個關(guān)聯(lián)的完整系統(tǒng)。
10、布式服務(wù)
業(yè)務(wù)拆分越來越小,存儲系統(tǒng)越來越大,應(yīng)用系統(tǒng)整體復(fù)雜度呈指數(shù)型增加,部署維護越來越困難。由于所有應(yīng)用都需要連接數(shù)據(jù)庫,在數(shù)萬臺服務(wù)器的情況下,數(shù)據(jù)庫連接會資源不足。
既然每個應(yīng)用系統(tǒng)都需要相同的業(yè)務(wù)操作,比如用戶管理、商品管理等,可以把這些共用業(yè)務(wù)抽取出來,獨立部署。
以上文章由長沙牛耳教育課程顧問整理編輯發(fā)布,部分文章來自網(wǎng)絡(luò)內(nèi)容真實性請自行核實或聯(lián)系我們,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費申請試課。關(guān)注官方微信了解更多:150 3333 6050