新聞資訊
行業(yè)資訊
服務器大流量、高并發(fā)如何應對??
2023-10-13 10:24:30
摘要:所謂服務器大流量高并發(fā)指的是:在同時或極短時間內,有大量的請求到達服務端,每個請求都需要服務端耗費資源進行處理,并做出相應的反饋。

所謂服務器大流量高并發(fā)指的是:在同時或極短時間內,有大量的請求到達服務端,每個請求都需要服務端耗費資源進行處理,并做出相應的反饋。


常用的高并發(fā)處理的思路與手段

從服務端視角看高并發(fā)

服務端處理請求需要耗費服務端的資源,比如能同時開啟的進程數(shù)、能同時運行的線程數(shù)、網(wǎng)絡連接數(shù)、cpu、I/O、內存等等,由于服務端資源是有限的,那么服務端能同時處理的請求也是有限的。高并發(fā)問題的本質就是:資源的有限性


高并發(fā)帶來的問題

服務端的處理和響應會越來越慢,甚至會丟棄部分請求不予處理,更嚴重的會導致服務端崩潰。


高并發(fā)處理的基本思路


1)從客戶端看

盡量減少請求數(shù)量,比如:依靠客戶端自身的緩存或處理能力

盡量減少對服務端資源的不必要耗費,比如:重復使用某些資源,如連接池客戶端處理的基本原則就是:能不訪問服務端就不要訪問


2)從服務端看

增加資源供給,比如:更大的網(wǎng)絡帶寬,使用更高配置的服務器,使用高性能的Web服務器,使用高性能的數(shù)據(jù)庫

請求分流,比如:使用集群,分布式的系統(tǒng)架構

應用優(yōu)化,比如:使用更高效的編程語言,優(yōu)化處理業(yè)務邏輯的算法,優(yōu)化訪問數(shù)據(jù)庫的SQL

基本原則:分而治之,并提高單個請求的處理速度


高并發(fā)處理的基本手段


1)客戶端發(fā)出請求層面,常見的手段有:

盡量利用瀏覽器的緩存功能,減少訪問服務端,比如:js、css、圖片等

可以考慮使用壓縮傳輸?shù)墓δ?,減少網(wǎng)絡流量,也會提高傳輸速度

考慮使用異步請求,分批獲取數(shù)據(jù)


2)前端接收客戶端請求層面,常見的手段有:

動靜分離,部分靜態(tài)資源可以直接從Nginx返回

按請求的不同,分發(fā)到不同的后端進行處理,比如:負載均衡、業(yè)務拆分訪問等

前面再加上一層來做多個Nginx的負載均衡,比如:LVS、F5等

還可以在更前面使用CDN服務

還可以對動態(tài)內容進行緩存,盡量減少訪問后端服務


3)Web服務器層面,常見的手段有:

使用最新的JVM,并進行配置優(yōu)化

對Web服務器進行配置優(yōu)化,比如:調整內存數(shù)量、線程數(shù)量等

提供多個能提供相同服務的Web服務器,以實現(xiàn)負載均衡

仔細規(guī)劃Web服務器上部署的應用規(guī)模

對Web服務器進行集群


4)Web應用層面,常見的手段有:

動態(tài)內容靜態(tài)化

Java開發(fā)優(yōu)化

優(yōu)化處理業(yè)務邏輯的算法

合理高效的利用緩存

優(yōu)化訪問數(shù)據(jù)庫的Sql,可以考慮利用存儲過程等數(shù)據(jù)庫的能力

合理使用多線程,加快業(yè)務處理

部分業(yè)務可以考慮內存數(shù)據(jù)庫,或者是進行純內存處理

盡量避免遠程調用、大量I/O等耗時的操作

合理規(guī)劃事務等較為耗資源的操作

合理使用異步處理

對部分業(yè)務考慮采用預處理或者預計算的方式,減少實時計算量

內部系統(tǒng)間的業(yè)務盡量直接調用、直接處理,減少WebService、工作流等


5)數(shù)據(jù)庫層面,常見的手段有:

合理選擇數(shù)據(jù)庫的引擎,比如Mysql的InnoDB與MyISAM引擎

進行配置優(yōu)化

可以考慮使用存儲過程來處理復雜的數(shù)據(jù)邏輯

數(shù)據(jù)庫集群,進行讀寫分離

合理設計數(shù)據(jù)庫的表結構、索引等

分庫、分表,降低單庫、單表的數(shù)據(jù)量

755800在全球超過120個國家部署數(shù)據(jù)中心,提供海外全球多個國家服務器租用,所有服務器均可根據(jù)需求配置大帶寬大流量,美國G口獨享大帶寬服務器,從此告別網(wǎng)絡擁堵;



海外服務器免費測試http://hbjsdrq.com/


USA-IDC為您提供免備案服務器 0元試用
立即聯(lián)系在線客服,即可申請免費產品試用服務
立即申請