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

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