全部課程
發(fā)布時間: 2021-06-25 09:54:10
你是否有過這樣的經(jīng)歷?當你在晚上7-8點上網(wǎng)高峰期輸入某些網(wǎng)站的網(wǎng)址去訪問時,頁面出現(xiàn)404,500等這樣的錯誤信息?
此時,我們會第一時間去檢查自己手機或者電腦的網(wǎng)絡是否有問題,經(jīng)過飛行模式、重啟、拔下網(wǎng)線重新連接等操作發(fā)現(xiàn)依舊不行;而其他類似于淘寶,京東,百度這樣的大型網(wǎng)站都能夠?qū)崿F(xiàn)正常訪問。
這個時候我們就會想:這個網(wǎng)站是不是被封殺了?或者這個網(wǎng)站是不是“崩”了?而實際上,只是因為這個時間上,網(wǎng)絡就像馬路交通一樣陷入了擁堵,同一時刻訪問這個網(wǎng)站的人太大,導致你無法直接抵達,只能等候排隊!
其實大家不用擔心,通常導致這種情況出現(xiàn)的原因,是訪問該網(wǎng)站的人過多,而網(wǎng)站無法支撐這么多的用戶訪問所以導致了崩潰。
那么問題來了:像淘寶、京東、百度這樣的網(wǎng)站,每天最少有千萬的用戶去訪問它,在618,雙11的時候,訪問的用戶劇增!這些網(wǎng)站是如何做到支持這么多的用戶同時實現(xiàn)訪問的呢? 這其中就可能涉及到Nginx技術中的“負載均衡”和“高并發(fā)處理”等問題。
什么是負載均衡呢?負載均衡可以理解為當多人同時訪問該網(wǎng)站時,可以通過某種方式將這些訪問的請求分攤到各內(nèi)部進程上。
什么是高并發(fā)呢?高并發(fā)其實就是該網(wǎng)站是否能支持多人同時實現(xiàn)訪問的情況下依然能夠保保證處于穩(wěn)定運行的狀態(tài)。
另一方面,你是否有過這樣的經(jīng)歷:當你去訪問淘寶,京東這樣的購物網(wǎng)站,或者使用這樣的APP后,第二次再去查看這個APP,你以前瀏覽過的商品頁面出現(xiàn)在了你的視野中,還給你推薦了類似的商品。
我們都知道這是通過大數(shù)據(jù)來實現(xiàn)的,但實際上大數(shù)據(jù)的實現(xiàn)也需要有強有力的后臺支撐,這么多的用戶都能享受到這種“量身定制”的服務。
這其中就有Nginx的功勞, Nginx技術可以說是大型網(wǎng)站的福音,是多業(yè)務,多平臺,多訪問量場景下實現(xiàn)負載均衡,高并發(fā),結(jié)合大數(shù)據(jù)行為分析,全棧監(jiān)控進行快速故障定位等的必備技術手段。
多業(yè)務平臺下的Nginx應用場景:
Nginx的優(yōu)點
更快,單次請求更快,高峰期也更快。
高擴展性,極具擴展性,它由多個不同功能、不同層次、不同類型且耦合度較高的模塊組成,這種低耦合的設計,造就了它龐大的第三方模塊。
高可靠性,每個worker進程相對獨立,master進程在某個worker進程出錯時能迅速拉起新的worker進程,nginx的可靠性來源于其核心框架代碼的優(yōu)秀設計、模塊設計的簡單性。
低內(nèi)存消耗,一般情況下10000個非活躍的keep-alive連接僅消耗2.5M的內(nèi)存。
單機支持10萬以上的并發(fā)連接,Nginx支持的并發(fā)連接上限取決于內(nèi)存,10萬遠沒封頂。
Nginx實用場景
大型Nginx網(wǎng)站架構(gòu):
Nginx應用案例:
應用Nginx后的收益
業(yè)務更加穩(wěn)定:
1. Nginx大連接數(shù)目支持非常好。
2. Nginx本身占用內(nèi)存很少,不會吃Swap。
業(yè)務性能更高:
1. Qps比Apache更好。
2. 節(jié)省及其數(shù)據(jù)。
3. 基于Nginx的模塊性能是之前業(yè)務的數(shù)倍。
上一篇: tar命令進行文件的歸檔和壓縮
下一篇: C和C++哪個好