培訓(xùn)無憂網(wǎng)合作機(jī)構(gòu) > 學(xué)校機(jī)構(gòu) > 長沙牛耳教育歡迎您!
Web前端開發(fā)課程長沙有培訓(xùn)班嗎
發(fā)布時(shí)間:2021-09-22 14:25:29
在IT培訓(xùn)中,
大型網(wǎng)站的特點(diǎn):
高并發(fā)、大流量:需要面對高并發(fā)用戶,大流量訪問。
高可用:需要7x24小時(shí)不間斷服務(wù)。
海量數(shù)據(jù):數(shù)據(jù)需要存儲、管理,需要大量服務(wù)器。
用戶分步廣泛、網(wǎng)絡(luò)情況復(fù)雜:全球網(wǎng)絡(luò)復(fù)雜,像國內(nèi)還有各個(gè)運(yùn)營商網(wǎng)絡(luò)互通難的問題。
安全環(huán)境惡劣:互聯(lián)網(wǎng)開放性,使得網(wǎng)站易受到攻擊。
需求快速變更,發(fā)布頻繁:快速迭代。
漸進(jìn)式發(fā)展:從小網(wǎng)站開始,逐漸發(fā)展成大站點(diǎn)。
大型網(wǎng)站的主要技術(shù)挑戰(zhàn)
龐大的用戶,高并發(fā)的訪問和海量數(shù)據(jù)。任何簡單業(yè)務(wù)在處理PB級數(shù)據(jù)或數(shù)以億計(jì)的用戶時(shí),問題就會變得棘手。
大型網(wǎng)站架構(gòu)的演化過程
1、初始階段的網(wǎng)站架構(gòu)
大多數(shù)小項(xiàng)目的初期架構(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強(qiáng)
文件服務(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)存容量限制。
目前只有單個(gè)應(yīng)用服務(wù)器,且只部署了一個(gè)實(shí)例,其能夠處理的連接數(shù)有限,在網(wǎng)站訪問高峰期時(shí),應(yīng)用服務(wù)器會變成瓶頸。
4、使用應(yīng)用集群改善網(wǎng)站的并發(fā)能力
一臺服務(wù)器的處理能力不足時(shí),不要考慮去換更強(qiáng)大的服務(wù)器,對于大型網(wǎng)站而言,不管多么強(qiáng)大的服務(wù)器,都滿足不了網(wǎng)站持續(xù)增長的業(yè)務(wù)需求。最好的方式是添加更多的服務(wù)器來分擔(dān)原有服務(wù)器的訪問。
5、數(shù)據(jù)庫讀寫分離
數(shù)據(jù)庫還存在的的問題:使用緩存后,依然會有部分讀操作(緩存沒有命中,緩存過期等)和所有的寫操作需要訪問數(shù)據(jù)庫。在網(wǎng)站用戶達(dá)到一定規(guī)模后,數(shù)據(jù)庫依然會因?yàn)樨?fù)載較高成為系統(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ò)提供商的機(jī)房,使用戶在請求網(wǎng)站服務(wù)時(shí),可以從距離自己最近的網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù);而反向代理則部署在網(wǎng)站的中心機(jī)房中,從用戶請求達(dá)到中心機(jī)房后,首先訪問的服務(wù)器是反向代理服務(wù)器,如果反向代理服務(wù)器中緩存著用戶請求的資源,就將其直接返回給用戶。
CDN和反向代理的目的:盡早返回?cái)?shù)據(jù)給用戶,一方面加快用戶訪問速度,另一方面減輕應(yīng)用服務(wù)器的負(fù)載壓力。
7、使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)
隨著網(wǎng)站業(yè)務(wù)發(fā)展,原有讀寫分離的數(shù)據(jù)庫也不能支撐。另外,原有的文件服務(wù)器也無法滿足需求了。
這時(shí),需要使用分布式數(shù)據(jù)庫和分布式文件系統(tǒng)。
分布式數(shù)據(jù)庫是網(wǎng)站數(shù)據(jù)庫拆分的最后手段,只有在單表數(shù)據(jù)規(guī)模非常龐大時(shí)才使用。
網(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ù)團(tuán)隊(duì)負(fù)責(zé)。具體到技術(shù),也會根據(jù)產(chǎn)品線劃分,將一個(gè)網(wǎng)站拆分為多個(gè)應(yīng)用,每個(gè)應(yīng)用獨(dú)立部署維護(hù)。
應(yīng)用之間可以通過一個(gè)超鏈接建立關(guān)系(在首頁的導(dǎo)航鏈接指向不同的應(yīng)用地址),也可以通過消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā),當(dāng)然最多的還是通過訪問同一個(gè)數(shù)據(jù)存儲系統(tǒng)來構(gòu)成一個(gè)關(guān)聯(lián)的完整系統(tǒng)。
10、布式服務(wù)
業(yè)務(wù)拆分越來越小,存儲系統(tǒng)越來越大,應(yīng)用系統(tǒng)整體復(fù)雜度呈指數(shù)型增加,部署維護(hù)越來越困難。由于所有應(yīng)用都需要連接數(shù)據(jù)庫,在數(shù)萬臺服務(wù)器的情況下,數(shù)據(jù)庫連接會資源不足。
既然每個(gè)應(yīng)用系統(tǒng)都需要相同的業(yè)務(wù)操作,比如用戶管理、商品管理等,可以把這些共用業(yè)務(wù)抽取出來,獨(dú)立部署。

以上文章由長沙牛耳教育課程顧問整理編輯發(fā)布,部分文章來自網(wǎng)絡(luò)內(nèi)容真實(shí)性請自行核實(shí)或聯(lián)系我們,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050