秒杀项目
哈哈哈呀啦啦啦
这个作者很懒,什么都没留下…
展开
-
如何设计秒杀系统
你知道的越多,你不知道的越多 点赞再看,...转载 2020-03-09 03:10:02 · 218 阅读 · 2 评论 -
SpringBoot秒杀系统(六)项目总结
1、优化分析 静态资源放到 CDN(内容分发网络)上,加速用户获取数据的系统,减轻服务器的压力 第一次访问后端,将数据放到 Redis 中,下一次的请求直接到redis 中查找,直接返回相关数据 存放秒杀地址 使用存储过程来减少编译时间和网络通信量来达到优化目的。 (整个事务都在MySQL 端完成 存储过程只在创建时进行编译,以后每次执行存储过程都不需要重新编译,而一般SQL语句每执行一次...原创 2019-11-02 21:51:33 · 208 阅读 · 0 评论 -
SpringBoot秒杀系统(五)线上部署
测试 1 没有使用 数据库事务,只是使用spring 的transaction注解的方式 正常上传之后 linux 进入控制台查看redis 是否有当前的链接缓存。 远程连接数据库查看 不清除cooick 再次进行购买 查看日志是否有报错。没有,测试ok 测试完毕。 测试 2 使用mysql 内置存储过程 linux 控制台进入mysql 执行 SQL文件夹里的 seckill-t...原创 2019-11-02 21:49:59 · 168 阅读 · 0 评论 -
SpringBoot秒杀系统(四)高并发优化
并发发生在哪? 红色部分为可能出现高并发的点 秒杀地址接口分析可以放到服务端进下行缓存。 当缓存中有地址时,直接返回。没有的话再去数据库进行查找,减轻数据库的压力。 秒杀瓶颈分析 多个用户购买一个商品时,数据库对某行记录进行封锁,只有当前面的请求提交或者回滚之后才能进下释放,这就导致了后面的用户一直在等待。 优化方向就是减少行级锁的持有时间 优化总结 前端: 动静态数据做分离,减少请求...原创 2019-11-02 21:43:43 · 483 阅读 · 0 评论 -
SpringBoot秒杀系统(三)web 层
因为每个用户的时间可能并不统一,所以要使用服务器时间来统一秒杀开始时间,首先获取服务器时间,秒杀开始前是无法得到秒杀地址的,开始之后可以得到秒杀地址。 Restful 接口规范 RESTful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。 RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是...原创 2019-10-17 23:05:05 · 141 阅读 · 0 评论 -
SpringBoot秒杀系统(二)Service层
Sservice层又称业务层,用来实现相关业务。需要将DAO层写好的数据操作在service 层中进行拼装。 对于秒杀,需要查询所有秒杀记录和单条秒记录,还有就是不能让用户提前知道秒杀地址,需要先输出一个秒杀地址。还有就是执行秒杀的操作接口。 SeckillService: /** * 获取所有的秒杀商品列表 * * @return */ L...原创 2019-10-13 13:49:48 · 297 阅读 · 0 评论 -
秒杀项目(1)
## SpringBoot秒杀体统(一)Dao 层 秒杀系统业务流程 1、问题在于如何不超卖、使用户如何不超买。 可能出现的问题: 难点分析: 使用事务+ 行级锁来约束购买 事务: 数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 通过开始事务、更新库存数量、插入购买记录、提交 来完成对一个用户的秒杀商品过程。 行级锁: 当一个用户完成购买之后,下一个...原创 2019-10-13 11:25:13 · 170 阅读 · 0 评论