码迷,mamicode.com
首页 > 其他好文 > 详细

通用报表设计方案

时间:2019-11-25 13:12:56      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:code   mon   监控   左右   you   nbsp   倒序   清除   离线   

通用报表的设计

背景:

1、md经常使用报表,报表的结果集需要在内存中进行计算,造成系统经常young gc

2、每一次报表查询需要10秒多的查询计算时间,造成业务人员的不满

基于上面的原因,设计了基于redis的缓存注解

设计方案

1、注解支持:设置超时时间、返回类型、返回类、参数类型设置

技术图片

 2、使用过程中发现了以下问题

第一次加载很缓慢

使用了缓存预热:将所有请求的参数记录下来,然后每请求一次,权重加+,进行倒序排列,然后每天去请求排名前10的请求(LRU算法)

缓存失效问题:因为这个数据是离线数据,每天都有新数据刷入,但是定时任务跑完的时间不确定,所以提供了缓存失效机制,每当任务跑完,然后将所有缓存失效,同时将热门请求先执行一遍。。。

紧急的降级方案:因为有时候跑出来的数据很快,但是缓存还有清除,所以需要使用开关去做最后的兜底方案

最后的效果:

1、根据我公司的wmonitor监控 :p99为1s左右

2、请求前后系统的cpu利用率无变化

通用报表设计方案

标签:code   mon   监控   左右   you   nbsp   倒序   清除   离线   

原文地址:https://www.cnblogs.com/zhangchiblog/p/11926782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!