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

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