一、業務場景
公司關鍵業務模塊之一考試系統試卷內容加載緩慢、加載失敗,前方人員哀聲四起,客戶投訴,各種爆炸!
二、問題分析
1、試卷存儲采用文本文件方式存儲
引發問題:並發情況下IO頻繁,造成過多的線程等待,致使Load越來越高。
2、試卷內容一次性加載,內容偏大(400k+)
引發問題:請求響應完成之后數據下載時間長,大大降低了系統吞吐量。
三、解決方案
1>第一階段
緩存試卷內容
效果回饋:基本解決了試卷加載失敗問題,試卷加載依舊緩慢。
2>第二階段
壓縮回傳內容
效果回饋:快!
四、基於第二階段的代碼片段及效果展示
1、前台代碼
2、后台代碼
3、關鍵代碼(壓縮文件)
5、壓縮前效果
6、壓縮后效果
五、說明
1、出於一些原因不能重構代碼
2、demo演示要部署到遠程服務器,本地測試看不出效果(本地下載時間毫秒級)
六、Demo下載