您好,登錄后才能下訂單哦!
所謂服務(wù)器大流量高并發(fā)指的是:在同時(shí)或極短時(shí)間內(nèi),有大量的請求到達(dá)服務(wù)端,每個(gè)請求都需要服務(wù)端耗費(fèi)資源進(jìn)行處理,并做出相應(yīng)的反饋。
從服務(wù)端視角看高并發(fā)
服務(wù)端處理請求需要耗費(fèi)服務(wù)端的資源,比如能同時(shí)開啟的進(jìn)程數(shù)、能同時(shí)運(yùn)行的線程數(shù)、網(wǎng)絡(luò)連接數(shù)、cpu、I/O、內(nèi)存等等,由于服務(wù)端資源是有限的,那么服務(wù)端能同時(shí)處理的請求也是有限的。高并發(fā)問題的本質(zhì)就是:資源的有限性
高并發(fā)帶來的問題
服務(wù)端的處理和響應(yīng)會越來越慢,甚至?xí)G棄部分請求不予處理,更嚴(yán)重的會導(dǎo)致服務(wù)端崩潰。
高并發(fā)處理的基本思路
1)從客戶端看
盡量減少請求數(shù)量,比如:依靠客戶端自身的緩存或處理能力。
盡量減少對服務(wù)端資源的不必要耗費(fèi),比如:重復(fù)使用某些資源,如連接池客戶端處理的基本原則就是:能不訪問服務(wù)端就不要訪問
2)從服務(wù)端看
增加資源供給,比如:更大的網(wǎng)絡(luò)帶寬,使用更高配置的服務(wù)器,使用高性能的Web服務(wù)器,使用高性能的數(shù)據(jù)庫
請求分流,比如:使用集群,分布式的系統(tǒng)架構(gòu)
應(yīng)用優(yōu)化,比如:使用更高效的編程語言,優(yōu)化處理業(yè)務(wù)邏輯的算法,優(yōu)化訪問數(shù)據(jù)庫的SQL
基本原則:分而治之,并提高單個(gè)請求的處理速度
高并發(fā)處理的基本手段
1)客戶端發(fā)出請求層面,常見的手段有:
l 盡量利用瀏覽器的緩存功能,減少訪問服務(wù)端,比如:js、css、圖片等
l 可以考慮使用壓縮傳輸?shù)墓δ?,減少網(wǎng)絡(luò)流量,也會提高傳輸速度
l 考慮使用異步請求,分批獲取數(shù)據(jù)
2)前端接收客戶端請求層面,常見的手段有:
l 動靜分離,部分靜態(tài)資源可以直接從Nginx返回
l 按請求的不同,分發(fā)到不同的后端進(jìn)行處理,比如:負(fù)載均衡、業(yè)務(wù)拆分訪問等
l 前面再加上一層來做多個(gè)Nginx的負(fù)載均衡,比如:LVS、F5等
l 還可以在更前面使用CDN服務(wù)
l 還可以對動態(tài)內(nèi)容進(jìn)行緩存,盡量減少訪問后端服務(wù)
3)Web服務(wù)器層面,常見的手段有:
l 使用最新的JVM,并進(jìn)行配置優(yōu)化
l 對Web服務(wù)器進(jìn)行配置優(yōu)化,比如:調(diào)整內(nèi)存數(shù)量、線程數(shù)量等
l 提供多個(gè)能提供相同服務(wù)的Web服務(wù)器,以實(shí)現(xiàn)負(fù)載均衡
l 仔細(xì)規(guī)劃Web服務(wù)器上部署的應(yīng)用規(guī)模
l 對Web服務(wù)器進(jìn)行集群
4)Web應(yīng)用層面,常見的手段有:
l 動態(tài)內(nèi)容靜態(tài)化
l Java開發(fā)優(yōu)化
l 優(yōu)化處理業(yè)務(wù)邏輯的算法
l 合理高效的利用緩存
l 優(yōu)化訪問數(shù)據(jù)庫的Sql,可以考慮利用存儲過程等數(shù)據(jù)庫的能力
l 合理使用多線程,加快業(yè)務(wù)處理
l 部分業(yè)務(wù)可以考慮內(nèi)存數(shù)據(jù)庫,或者是進(jìn)行純內(nèi)存處理
l 盡量避免遠(yuǎn)程調(diào)用、大量I/O等耗時(shí)的操作
l 合理規(guī)劃事務(wù)等較為耗資源的操作
l 合理使用異步處理
l 對部分業(yè)務(wù)考慮采用預(yù)處理或者預(yù)計(jì)算的方式,減少實(shí)時(shí)計(jì)算量
l 內(nèi)部系統(tǒng)間的業(yè)務(wù)盡量直接調(diào)用、直接處理,減少WebService、工作流等
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。