**基于SpringBoot实现Java高并发之秒杀系统**
**技术栈**
* 后端: SpringBoot-2.x + Redis-4.x
* 前端: Bootstrap + Jquery
**测试环境**
* IDEA + Maven-10.13 + Tomcat8 + JDK8
**启动说明**
* 启动前,请配置好 [application.yml](https://github.com/TyCoding/springboot-seckill/blob/master/src/main/resources/application.yml) 中连接数据库的用户名和密码,以及Redis服务器的地址和端口信息。
* 启动前,请创建数据库`seckill`,建表SQL语句放在:[/db/sys_schema.sql](https://github.com/TyCoding/springboot-seckill/blob/master/db/sys_schema.sql)。具体的建表和建库语句请仔细看SQL文件。
* 配置完成后,运行位于 `src/main/cn/tycoding/`下的SpringbootSeckillApplication中的main方法,访问 `http://localhost:8080/seckill/` 进行API测试。
* 注意[/db/sys_data.sql](https://github.com/TyCoding/springboot-seckill/blob/master/db/sys_data.sql)中秒杀商品的日期可能要修改,自行修改为符合商品秒杀条件的时间即可。
**写在前面**
SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式,所以本质上和SSM框架差别不大,所以学习此项目不仅可以学习到秒杀系统的设计流程还能很好的练习一下SpringBoot框架。当然如果你对SpringBoot框架不是很熟悉的话,我推荐你你看一下:
* [SpringBoot入门之工程搭建(IDEA版)](http://tycoding.cn/2018/09/28/boot/spring-boot/)
* [SpringBoot整合mybatis实现CRUD业务](http://tycoding.cn/2018/09/30/boot/springboot-mybatis/)
欢迎star(#^.^#)
**项目设计**
```
.
├── README -- Doc文档
├── db -- 数据库约束文件
├── mvnw
├── mvnw.cmd
├── pom.xml -- 项目依赖
└── src
├── main
│ ├── java
│ │ └── cn
│ │ └── tycoding
│ │ ├── SpringbootSeckillApplication.java -- SpringBoot启动器
│ │ ├── controller -- MVC的web层
│ │ ├── dto -- 统一封装的一些结果属性,和entity类似
│ │ ├── entity -- 实体类
│ │ ├── enums -- 手动定义的字典枚举参数
│ │ ├── exception -- 统一的异常结果
│ │ ├── mapper -- Mybatis-Mapper层映射接口,或称为DAO层
│ │ ├── redis -- redis,jedis 相关配置
│ │ └── service -- 业务层
│ └── resources
│ ├── application.yml -- SpringBoot核心配置
│ ├── mapper -- Mybatis-Mapper层XML映射文件
│ ├── static -- 存放页面静态资源,可通过浏览器直接访问
│ │ ├── css
│ │ ├── js
│ │ └── lib
│ └── templates -- 存放Thymeleaf模板引擎所需的HTML,不能在浏览器直接访问
│ ├── page
│ └── public -- HTML页面公共组件(头部、尾部)
└── test -- 测试文件
```
## Doc
本项目一共分为四个模块来讲解,具体的开发教程请看我的博客文章:
* [SpringBoot实现Java高并发秒杀系统之DAO层开发(一)](http://tycoding.cn/2018/10/12/ssm/seckill-dao/)
* [SpringBoot实现Java高并发秒杀系统之Service层开发(二)](http://tycoding.cn/2018/10/13/ssm/seckill-service/)
* [SpringBoot实现Java高并发秒杀系统之Web层开发(三)](http://tycoding.cn/2018/10/14/ssm/seckill-web/)
* [SpringBoot实现Java高并发秒杀系统之并发优化(四)](http://tycoding.cn/2018/10/15/ssm/seckill/)
更多文档将在我的公众号 **程序员涂陌** 中陆续发布,请持续关注!
| 程序员涂陌 |
| ----------------------------------------------------------- |
| ![qrcode_for_gh](http://cdn.tycoding.cn/20200610184737.jpg) |
## 捐赠
| Alipay | WechatPay |
| ---------------------------------------------------------- | ---------------------------------------------------------- |
| ![alipay_258px](http://cdn.tycoding.cn/20200610132929.png) | ![wechat_258px](http://cdn.tycoding.cn/20200610132940.png) |
<br/>
# Preview
![](README/show-1.png)
![](README/show-2.png)
![](README/show-3.png)
<br/>
# 交流
如果大家有兴趣,欢迎大家加入我的Java交流群:671017003 ,一起交流学习Java技术。博主目前一直在自学JAVA中,技术有限,如果可以,会尽力给大家提供一些帮助,或是一些学习方法,当然群里的大佬都会积极给新手答疑的。所以,别犹豫,快来加入我们吧!
<br/>
# 联系
If you have some questions after you see this article, you can contact me or you can find some info by clicking these links.
- [Blog@TyCoding's blog](http://www.tycoding.cn)
- [GitHub@TyCoding](https://github.com/TyCoding)
- [ZhiHu@TyCoding](https://www.zhihu.com/people/tomo-83-82/activities)
没有合适的资源?快使用搜索试试~ 我知道了~
简单实现Java高并发之秒杀系统
共66个文件
java:23个
png:5个
css:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 45 浏览量
2024-03-14
20:41:40
上传
评论
收藏 2.34MB ZIP 举报
温馨提示
秒杀系统是一种针对高并发场景下的抢购活动设计的系统,旨在克服大量用户同时访问和购买同一商品的挑战。以下是秒杀系统的概念描述: 1. **限流与并发控制**:秒杀系统需要通过限制每秒钟的请求数量或者设置并发访问的阈值,以避免系统超负荷运行。常见的技术包括令牌桶算法、漏桶算法等,确保系统的稳定性和可用性。 2. **缓存优化和数据预热**:秒杀系统通常会使用缓存技术,如将商品信息、库存和用户状态等数据提前加载到缓存中。使用缓存可以有效减轻数据库的压力并提高响应速度。 3. **分布式架构**:由于高并发的场景,秒杀系统通常采用分布式架构,将负载分散到多个服务器上,同时利用负载均衡技术分配请求。 4. **队列和异步处理**:秒杀系统可以使用消息队列来处理抢购请求,将请求按顺序放入队列中,并通过消费者异步处理。这样可以减少数据库的并发写操作,提高系统的吞吐量。 5. **验证码与安全机制**:为了防止机器人恶意请求,秒杀系统通常需要加入验证码机制,以确保只有真正的用户才能参与秒杀活动。 6. **数据库优化**:针对高并发操作,需要优化数据库的设计和操作,......
资源推荐
资源详情
资源评论
收起资源包目录
使用SpringBoot2.x 简单实现Java高并发之秒杀系统.zip (66个子文件)
springboot-seckill-master
mvnw.cmd 5KB
README
show-2.png 321KB
show-1.png 473KB
show-3.png 417KB
pom.xml 3KB
src
test
java
cn
tycoding
mapper
SeckillOrderMapperTest.java 958B
SeckillMapperTest.java 1KB
SpringbootSeckillApplicationTests.java 348B
service
impl
SeckillServiceImplTest.java 3KB
redis
RedisTemplateConfigTest.java 1004B
main
resources
mapper
SeckillMapper.xml 691B
SeckillOrderMapper.xml 1KB
templates
public
header.html 458B
footer.html 725B
page
seckill.html 2KB
seckill_detail.html 5KB
static
lib
bootstrap.min.css 118KB
bootstrap.min.js 36KB
font
css
font-awesome.min.css 32KB
icon
seckillbg.png 19KB
clock.png 477B
fonts
FontAwesome.otf 132KB
glyphicons-halflings-regular.svg 106KB
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.woff 23KB
glyphicons-halflings-regular.eot 20KB
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.woff2 18KB
fontawesome-webfont.woff 96KB
fontawesome-webfont.woff2 75KB
fontawesome-webfont.svg 434KB
fontawesome-webfont.ttf 162KB
jquery.cookie.js 3KB
countdown.js 12KB
jquery-3.3.1.min.js 85KB
js
seckill_detail.js 6KB
css
public.css 781B
seckill.css 3KB
seckill_item.css 2KB
application.yml 2KB
java
cn
tycoding
mapper
SeckillMapper.java 991B
SeckillOrderMapper.java 1009B
controller
BaseController.java 470B
SeckillController.java 4KB
service
SeckillService.java 1KB
impl
SeckillServiceImpl.java 7KB
enums
SeckillStatEnum.java 807B
redis
RedisTemplateConfig.java 2KB
JedisConfig.java 2KB
entity
Seckill.java 3KB
SeckillOrder.java 2KB
exception
RepeatKillException.java 380B
SeckillCloseException.java 353B
SeckillException.java 344B
dto
SeckillResult.java 1KB
Exposer.java 2KB
SeckillExecution.java 2KB
SpringbootSeckillApplication.java 337B
.mvn
wrapper
maven-wrapper.properties 110B
maven-wrapper.jar 46KB
mvnw 6KB
.gitignore 268B
README.md 5KB
db
sys_data.sql 1KB
sys_schema.sql 2KB
CSDN关注我不迷路.bmp 2.79MB
共 66 条
- 1
资源评论
专家-百锦再
- 粉丝: 7446
- 资源: 731
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功