自定义注解和拦截器,实现接口限流防刷

版权声明:本博客为记录本人学习过程而开,内容大多从网上学习与整理所得,若侵权请告知! https://blog.csdn.net/Fly_as_tadpole/article/details/86648499

我们的目的是在指定时间内,每个用户只能进行秒杀请求指定次数。

首先,定义一个注解

写一个拦截器。就是当执行某个方法之前,将请求截获:

(这里实现的只是一个思路,由于StringRedisTemplate只能存字符串,不好递增,因此只是在指定时间内都只能访问一次,无论你指定多少 次,懂得思路就行)

将拦截器注册到系统中,也即是Springboot的配置文件中,由于SpringBoot使用的是默认配置。我们可以创建一个类来增加或者覆盖相应的配置。

效果:连续刷页面,会出现

说明限流成功。


拓展一下:压力测试,这里使用Apache ab来进行压测。

到网上下载包,解压。打开DOS窗口,进入解压目录的bin文件夹下,假设输入以下命令行:

ab -n 100000 -c 1000 http://127.0.0.1:8080/sell/skill/order/123456

注:1000个用户同时发送100000个并发请求。

猜你喜欢

转载自blog.csdn.net/Fly_as_tadpole/article/details/86648499