智能BI项目(四)分表和限流(令牌桶算法)
前端
没什么好说的就是新增了一个浏览我的图表的页面
后端:
分表设计!!
原来这个分表的设计有个从csv里的数据得到的chartData字段。但是这个东西数据量大起来就会很影响查询速度。所以把chartData分出来一个表
每一个chartData都有一个chart_data_{charDataId}
好处:
\1. 如果需要data数据的某一行可以快速找到。
2.加快chart表的查询速度。互不影响增加安全性
实现:
总共有三部分 创造动态新表,向新表插入数据,查询新表数据。
直接用sql语句。(但是要小心sql注入需要校验一下)
限流:面试必备:4种经典限流算法讲解最近我们系统引入了Guava的RateLimiter限流组件,它是基于令牌桶算法的实现的。 - 掘金
防止用户频繁操作。限制用户每分钟发送请求的次数。
使用Redisson自带的限流方案
令牌桶算法
Redisson实现****令牌桶算法(trySetRate)。
相当于
有一个大鞋柜,大鞋柜里每个格子放了一双鞋子。
当学生过来拿鞋子,会判断有没有柜子有没有鞋子,有的话就拿走。只有拿到鞋子的用户才有资格进入教室,没有拿到的不行。
会有人一某种速率补充鞋子进鞋柜。比如一分钟补充5双直到补满。