高并发秒杀系统的开发及优化

开发流程:
基础环境用的是springboot框架,优点对比与SSM框架,是更加的简洁,直接一个配置文件就能代替原来的xml文件配置,我在这个项目中没有用到xml文件,基本全是注解;
数据传输,用它自带的thyemleaf去集成前端的页面,手写了一个结果集封装结果数据发送到前台;
数据交换用的是MyBatis和druid(阿里巴巴的数据库连接池);
基于Jedis自己封装了一个客户端(具体封装代码,在下面的工具里面);
数据库设计,下订单牵扯到两张表和一个减缓存的事务,这三个操作在一个事务里面;(有过错误,在rabbitMQ传输里面做成死循环了);
两次MD5加密密码:第一次MD5加密,第二次通过加salt随机字符串再加密生成密码用来传输,第三次重复第二次的操作,不过第三次的数据是放在数据库中的,防止拦截分析获得密码;
参数检验用到的是javax.validation.的类
全局异常处理器:捕获全局异常放入结果集进行输出
分布式session原理:用户登录生成一个token,写入COOKIE,然后存入缓存中,登陆的时候通过取缓存,判断cookie来向服务器表示身份。
改密码先改数据库,再改缓存,防止缓存脏读;
逻辑业务
JMeter压测 模拟了5000个用户同时涌入不同的接口,瓶颈在访问数据库;
开始优化:
页面优化用到了:页面静态化,页面缓存,通过配置文档开启浏览器缓存;
接口优化:主要优化秒杀接口,首先还是减少数据库访问,在本地创建一个hashmap标记内存,采用异步下单(rabbitMQ),增强了用户体验,
安全优化:秒杀地址隐藏:
前台异步获取一个随机码加在url中
数学公式验证码:生成一个验证码发送到前台
接口限流:在redis中生成一个key,存货五秒,在五秒内点击超过5次就不能再点击了;

编程常用的工具类;
链接:https://pan.baidu.com/s/1DROfNGRDLvdX_DOkD2FEfg
提取码:y9x9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值