(一)防刷策略
不能轻易的让机器刷我们的订单的接口
需要做一些人工的保障,限流防刷,
首先根据 /verifyCode路径请求,生成一个图片二维码(通过一个脚本的执行引擎)
Image.getResult() 得到答案,并存储到redis里。
然后在/token请求中,传入答案参数,进行校验,获得秒杀地址的令牌,注意,我们的秒杀地址是动态的
注意路径,如果答案输入正确,那么就将token,传入到Url上(通过@pathvariable注解传入)。访问真正的秒杀地址。
(二) 限流策略
1s有10w个人去获取token,但是该接口只能抗1w的请求,因此就不应该把这10w的人全部放进来。
不用sentinal咋玩限流?
用redis咋玩?:获取token的路径,作为key,也就是getUrl作为key,并设置超时时间60s,
然后通过redis的incr 原子操作,累加。
超过10000,则return failed(访问超载)
也就是可以达到一个限流的效果(1分钟只允许10000次访问)