javaweb系統調優方案


1. java代碼優化

  java代碼優化6大原則 : https://blog.csdn.net/bunny1024/article/details/72803708

  java代碼優化: https://www.cnblogs.com/xrq730/p/4865416.html

 

2. 業務優化

  公司后台是一個手機app后台, 全天平均每秒並發50~60, 個別時間點可達到5000+, 我采用以下措施

  (a). 盡量減少對服務器請求次數,  單次請求, 返回盡量多的信息.

    比如有個拉取banner廣告接口,根據banner展示的位置不同, 會走不同的查詢sql, 相當於多個接口集成到一個接口上, 造成接口

  訪問壓力大, 大量占用服務器資源.

    改進 : 一次查詢, 返回所有banner廣告信息, 使用gzip壓縮json數據

 

  (b). 盡量避免高並發時間點, 將請求散布到盡可能大的時間范圍內

    安卓端每天有一部分信息需要在特定時間點更新, 該點為服務器配置, 會造成每天配置的點訪問壓力瞬時加大, 單台tomcat優化后每秒並發量在500-800,

  加配置浪費硬件配置. 不加配置, 造成服務器壓力過大, 部分請求會失敗或者超時, 嚴重影響用戶體驗.

    改進 :

    1. 調整訪問方式為用戶隨機和代碼隨機, 具體做法是

      用戶隨機 - 每天手機第一次亮屏並且用戶切回到主桌面, 滿足2個條件則發送請求. 將原來過0點的瞬時請求, 轉化到0點過后的任意時間點, 

      大大降低瞬時點的並發量

      代碼隨機 - 服務端配置更新時間精確到某一分鍾, 用一個隨機函數確定請求時間點(秒), 可以將請求由原來的某一秒散布到一分鍾以內

 

  (c). 更改運營策略, 錯峰訪問

    結合nginx訪問日志, 確定全天高並發時間點和高訪問量接口, 具體參見我的nginx日志分析: 

      高並發點采用b方法,

      對於高頻訪問數據, 要預先加載到緩存中, 次要一些的請求放到全天請求不高的時間段, 比如加載廣告資源,

    可以預先用定時任務加載緩存中, 而app靜默更新下載之類的, 不太緊急的接口, 可以放到並發量不高的時間段去訪問

 

3. tomcat/jvm 優化

  tomcat調優 : https://www.cnblogs.com/hcl1991/p/10838245.html

 

4. nginx優化

  參考nginx調優: https://www.cnblogs.com/hcl1991/p/10838912.html

 

5. mysql優化

  參考: https://www.cnblogs.com/hcl1991/p/10839809.html

 

參考:

  aliyun如何處理網站高並發流量問題: https://yq.aliyun.com/articles/696140?spm=a2c4e.11155472.0.0.18bf2c5d5oy2Ui


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM