前言
分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。

但就是这样一个简单的分类树查询功能,我们却优化了5次。
到底是怎么回事呢?
背景
我们的网站使用了SpringBoot推荐的模板引擎:Thymeleaf,进行动态渲染。
它是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。
它提供了一个用于整合SpringMVC的可选模块,在应用开发中,我们可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity\FreeMarker等。
前端开发写好Thymeleaf的模板文件,调用后端接口获取数据,进行动态绑定,就能把想要的内容展示给用户。
由于当时这个是从0-1的新项目,为了开快速开发功能,我们第一版接口,直接从数据库中查询分类数据,组装成分类树,然后返回给前端。
通过这种方式,简化了数据流程,快速把整个页面功能调通了。
第1次优化
我们将该接口部署到dev环境,刚开始没啥问题。
随着开发人员添加的分类越来越多,很快就暴露出性能瓶颈。
我们不得不做优化了。
我们第一个想到的是:加Redis缓存。
流程图如下:

于是暂时这样优化了一下:

文章详细描述了在电商系统中,针对分类树查询功能的多次性能优化过程,包括从数据库直接查询到引入Redis缓存,再到添加内存缓存(Caffeine),启用GZip压缩减少传输大小,以及优化数据存储格式和压缩数据来解决Redis大key问题。
最低0.47元/天 解锁文章
643

被折叠的 条评论
为什么被折叠?



