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