一、高并发秒杀API简介与业务分析

一、简介

该项目主要整合Mybatis+Spring+SringMVC 三个框架开发的;同时这三个框架也是互联网公司的常用框架,比如美团、阿里、搜狐、京东等大型互联网网站常用这三个框架,主要是因为这三个框架易于使用并且比较轻量级,另外一个原因就是低代码侵入性,并且拥有成熟的用户群和社区。

现在网络上秒杀和红包类业务需求越来越常见,这种业务是一种竞争性产品,具有很典型的事务特性。

学会分析、设计、实现和优化类似的秒杀系统

1、如何设计一个秒杀系统
2、如何优化一个秒杀系统
3、常用到什么技术解决高并发问题

学习这个项目,得到收获:框架的使用和整合技巧、秒杀系统的设计分析过程和优化思路。

总体来讲,该项目是一个基于Maven工具且利用Mybatis+Spring+Spring MVC三大框架实现并进行了高并发优化的Java后端秒杀系统;

二、业务分析

1、需求分析
整个秒杀系统实际是一个以库存为核心的后端的系统:

这里写图片描述
用户针对库存分析

这里写图片描述

2、为什么需要事务
答案很明显:如果出现减库存之后没有记录购买明细、记录购买明细没有减库存、超卖少卖等情况,那么就是程序员的责任了,所以我们要用使用事务保证数据的完整性、一致性,实现数据落地。目前,Mysql VS NoSQL的都在这方面做的不是太好,所以,事务机制依然是目前最有效最可靠的数据落地方案。

3、秒杀系统难点
竞争,时间延迟(事务和行级锁)
事务具有原子性,可以将不同的操作绑定在一起作为整体来执行,针对该业务,主要流程为:

 Start Transaction(开启事务)=》Update库存数量=》Insert购买明细=》Commit(提交事务)

事务上可能出现竞争的地方主要在更新数据上面;

除此之外,同一时间会有多个用户在等待秒杀的更新,所以行级锁也伴随着竞争。
这里写图片描述

所以整个系统的难点就落在如何高效的处理竞争、完成事务(主要在秒杀操作)

4、需要实现的功能
(1)秒杀接口暴露操作(一些用户通过程序填入参数自动实现秒杀,一种不公平操作)
(2)秒杀执行操作
(3)相关查询(列表查询、详情页查询)

5、阶段分析
综合该高并发秒杀系统,总共可以分为四个阶段:

业务分析-----API之DAO层-----API之Service层-------API之web层-------API之高并发优化

其中中间三个部分属于开发的三个阶段:

DAO层-----Service层-----Web层

三、相关技术

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值