一、业务场景
公司关键业务模块之一 考试系统试卷内容加载缓慢、加载失败,前方人员哀声四起,客户投诉,各种爆炸!
二、问题分析
1、试卷存储采用文本文件方式存储
引发问题:并发情况下IO频繁,造成过多的线程等待,致使Load越来越高。
2、试卷内容一次性加载,内容偏大(400k+)
引发问题:请求响应完成之后数据下载时间长,大大降低了系统吞吐量。
三、解决方案
1>第一阶段
缓存试卷内容
效果回馈:基本解决了试卷加载失败问题,试卷加载依旧缓慢。
2>第二阶段
压缩回传内容
效果回馈:快!
四、基于第二阶段的代码片段及效果展示
1、前台代码
2、后台代码
3、关键代码(压缩文件)
5、压缩前效果
6、压缩后效果
五、说明
1、出于一些原因不能重构代码
2、demo演示要部署到远程服务器,本地测试看不出效果(本地下载时间毫秒级)
六、Demo下载
source code