版权声明:本博客为记录本人学习过程而开,内容大多从网上学习与整理所得,若侵权请告知! 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个并发请求。