概述
本章介绍了常见的黄牛入侵手段,以及如何使用对应的防刷手段防止黄牛入侵。同时业务的发展预估永远可能高于系统可承载的能力,因此介绍了使用多种限流技术保证系统的稳定。
本章学习目标:
- 掌握验证码生成与验证技术;
- 掌握限流原理与实现;
- 掌握防黄牛技术;
一、验证码
- 包装秒杀令牌设置,需要验证码来错峰,分散用户的请求;
- 数学公式验证码生成器;
1.1 代码实现
创建CodeUtil.java,创建好生成验证码的程序
OrderController.java
***
//生成秒杀令牌前,需要接收验证码
//生成验证码
@RequestMapping(value = "/generateverifycode",method = {
RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public void generateverifycode(HttpServletResponse response) throws BusinessException, IOException {
String token = httpServletRequest.getParameterMap().get("token")[0];
if(StringUtils.isEmpty(token)){
throw new BusinessException(EmBusinessError.USER_NOT_LOGIN,"用户还未登陆,不能生成验证码");
}
UserModel userModel = (UserModel) redisTemplate.opsForValue().get(token);
if