咨詢熱線 400-001-5729

Web前端開發(fā)課程長沙有培訓(xùn)班嗎

發(fā)布時(shí)間:2021-09-22 14:25:29

IT架構(gòu)師如何快速識別大型網(wǎng)站

在IT培訓(xùn)中,Web前端開發(fā)課程是目前長沙地區(qū)就業(yè)前景比較不錯(cuò)的專業(yè),下面,我們就整理一下,一個(gè)優(yōu)秀的IT架構(gòu)師如何快速識別一個(gè)大型網(wǎng)站?

大型網(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)。

src=http_%2F%2Fs4.51cto.com%2Foss%2F202107%2F05%2F5c94f95fafbaa1844292a165b8797a71.jpg_x-oss-process=image%2Fformat,jpg,image%2Fresize,w_600&refer=http_%2F%2Fs4.51cto.jpg


大型網(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ú)立部署。







大型網(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

免 費(fèi) 申 請 試 課