# 分布式高并发商品秒杀系统设计
- [介绍](#介绍)
- [快速启动](#快速启动)
- [系统架构](#系统架构)
- [模块介绍](#模块介绍)
- [Q&A](#Q&A)
- [TODO LIST](#TODO)
- [参考](#参考)
## 介绍
本项目为另一个项目[seckill](https://github.com/Grootzz/seckill)的分布式改进版本,dis-seckill意为:distributed seckill,即分布式秒杀系统。
商品秒杀与其他业务最大的区别在于:
- 低廉价格;
- 大幅推广;
- 瞬时售空;
- 一般是定时上架;
- 时间短、瞬时并发量高、网络的流量也会瞬间变大。
除了具有以上特点,秒杀商品还需要完成正常的电子商务逻辑,即:(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货。
本项目正是基于上述业务特点进行设计的,在项目中引入诸多优化手段,使系统可以从容应对秒杀场景下的业务处理。
另外,项目[seckill](https://github.com/Grootzz/seckill)为单体应用,在大并发情形下处理能力有限,所以本项目对其进行分布式改造,对职责进行划分,降低单体应用的业务耦合性。
## 快速启动
- 构建工具
apache-maven-3.6.1
- 开发环境
JDK 1.8、Mysql 8.0.12、SpringBoot 2.1.5、zookeeper 3.4.10、dubbo 2.7.1、redis 5.0.5、rabbitmq 3.7.15
在安装之前,需要安装好上述构建工具和开发环境,推荐在linux下安装上述开发环境。
**第一步**;完成数据库的初始化,使用`./dis-seckill-common/schema/seckill.sql`初始化数据库。
**第二步**;如果安装了git,则可以采用下面的方式快速启动;
```properties
git clone git@github.com:Grootzz/dis-seckill.git
mvn clean package
```
启动缓存服务:
```properties
java -jar dis-seckill-cache/target/dis-seckill-cache-0.0.1-SNAPSHOT.jar
```
启动用户服务:
```properties
java -jar dis-seckill-user/target/dis-seckill-user-0.0.1-SNAPSHOT.jar
```
启动订单服务:
```properties
java -jar dis-seckill-order/target/dis-seckill-order-0.0.1-SNAPSHOT.jar
```
启动商品服务:
```properties
java -jar dis-seckill-goods/target/dis-seckill-goods-0.0.1-SNAPSHOT.jar
```
启动消息队列服务:
```properties
java -jar dis-seckill-mq/target/dis-seckill-mq-0.0.1-SNAPSHOT.jar
```
启动网关服务:
```properties
java -jar dis-seckill-gateway/target/dis-seckill-gateway-0.0.1-SNAPSHOT.jar
```
> 注:启动服务时最好按上面的顺序启动。
如果将项目导入IDE中进行构建,则分别按上面的顺序启动服务即可。
**第三步**;访问项目入口地址
<http://localhost:8082/user/index>
初始用户手机号码:18342390420,密码:000000
## 系统架构
![系统架构](doc/assets/SYSTEM_ARCHITECTURE.png)
- 注册中心使用zookeeper;
- 缓存采用redis;
- 消息队列采用RabbitMQ;
- 用户请求全部交由Gateway模块处理;
- Gateway模块使用RPC的方式调用其他模块提供的服务完成业务处理。
## 模块介绍
- dis-seckill-common:通用模块
- dis-seckill-user:用户模块
- dis-seckill-goods:商品模块
- dis-seckill-order:订单模块
- dis-seckill-gateway:网关模块
- dis-seckill-cache:缓存模块
- dis-seckill-mq:消息队列模块
## Q&A
- [前后端交互接口定义](https://github.com/Grootzz/dis-seckill/blob/master/doc/前后端交互接口定义.md)
- [前后端交互接口逻辑实现](https://github.com/Grootzz/dis-seckill/blob/master/doc/前后端交互接口逻辑实现.md)
- [Redis中存储的数据](https://github.com/Grootzz/dis-seckill/blob/master/doc/Redis中存储的数据.md)
- [使用分布式锁解决恶意用户重复注册问题](https://github.com/Grootzz/dis-seckill/blob/master/doc/使用分布式锁解决恶意用户重复注册问题.md)
- ......
## TODO
- [ ] 引入JWT简化权限验证;
- [x] 完成用户注册功能;
- [x] 引入分布式锁保证更改密码接口用户注册接口的幂等性,防止用户恶意访问;
- [ ] 服务模块横向扩展;
- [ ] 服务调用的负载均衡与服务降级;
- [ ] gateway模块横向扩展,降低单个应用的压力;
- [ ] Nginx水平扩展;
- [ ] 接口压测;
- [ ] ......
## 参考
- <https://blog.csdn.net/gxftry1st/article/details/78560816>
- <http://coding.imooc.com/class/168.html>
- <https://github.com/Grootzz/seckill>
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统dis_seckill.zip
共146个文件
java:75个
js:11个
xml:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2024-05-14
22:22:59
上传
评论
收藏 1.35MB ZIP 举报
温馨提示
该项目利用了基于springboot + vue + mysql的开发模式框架实现的课设系统,包括了项目的源码资源、sql文件、相关指引文档等等。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统dis_seckill.zip (146个子文件)
bootstrap.css 143KB
bootstrap.min.css 118KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
layer.css 14KB
layer.css 5KB
glyphicons-halflings-regular.eot 20KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
.gitignore 953B
goods_detail.htm 9KB
order_detail.htm 4KB
register.html 6KB
login.html 4KB
goods_detail.html 4KB
order_detail.html 3KB
goods_list.html 3KB
SeckillController.java 12KB
UserServiceImpl.java 7KB
AccessInterceptor.java 7KB
SeckillServiceImpl.java 6KB
GoodsController.java 6KB
RedisServiceImpl.java 5KB
UserArgumentResolver.java 5KB
UserUtil.java 5KB
UserController.java 4KB
MqConsumer.java 3KB
OrderServiceImpl.java 3KB
CodeMsg.java 3KB
MD5Util.java 3KB
OrderInfo.java 3KB
VerifyCodeUtil.java 3KB
UserInfoVo.java 3KB
GlobalExceptionHandler.java 3KB
RedisLockImpl.java 2KB
GlobalExceptionHandler.java 2KB
UserVo.java 2KB
SeckillUser.java 2KB
SeckillUser.java 2KB
OrderController.java 2KB
MqProviderImpl.java 2KB
Result.java 2KB
OrderMapper.java 2KB
JsonUtil.java 2KB
UserServiceApi.java 2KB
WebConfig.java 2KB
IsMobileValidator.java 2KB
GoodsMapper.java 1KB
GoodsServiceImpl.java 1KB
RedisServiceApi.java 1KB
Goods.java 1KB
RedisConfig.java 1KB
DBUtil.java 1KB
GoodsVo.java 1KB
GoodsDetailVo.java 1KB
MQConfig.java 1KB
SeckillGoods.java 1KB
RegisterVo.java 1KB
LoginVo.java 1KB
GoodsKeyPrefix.java 1KB
BaseKeyPrefix.java 1KB
SkKeyPrefix.java 1007B
IsMobile.java 1001B
OrderDetailVo.java 954B
RedisPoolFactory.java 938B
SeckillServiceApi.java 937B
OrderServiceApi.java 930B
SeckillUserMapper.java 874B
VerifyCodeVo.java 850B
SkUserKeyPrefix.java 830B
ValidatorUtil.java 817B
SeckillOrder.java 813B
GoodsServiceApi.java 807B
SkMessage.java 791B
AccessLimit.java 767B
DLockApi.java 729B
UserContext.java 681B
OrderKeyPrefix.java 628B
AccessKeyPrefix.java 561B
UserApplication.java 511B
DisSeckillServletInitializer.java 510B
GlobalException.java 464B
GlobalException.java 463B
GatewayApplication.java 446B
KeyPrefix.java 445B
UserKey.java 380B
GoodsApplication.java 367B
OrderApplication.java 367B
MqApplication.java 365B
CacheApplication.java 347B
MqProviderApi.java 345B
UUIDUtil.java 256B
bg2.jpg 80KB
jquery.min.js 82KB
bootstrap.js 68KB
bootstrap.min.js 36KB
layer.js 21KB
jquery.validate.min.js 21KB
additional-methods.min.js 17KB
共 146 条
- 1
- 2
资源评论
枫蜜柚子茶
- 粉丝: 8981
- 资源: 5351
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 哈希密码转换的微信小程序页面模板源码下载.zip
- 海益ERP数据管理系统2.0源码.zip
- 汉字详细信息的微信小程序页面模板源码下载.zip
- 好书收集网的微信小程序页面模板源码下载.zip
- 汉字拼音首字母排序的微信小程序页面模板源码下载.zip
- 通用的在线考试系统(jsp+struts+hibernate+oracle).zip
- 黑白简单动态北京时间的微信小程序页面模板源码下载.zip
- 黑白果库商城的微信小程序页面源码.zip
- 黑白风经典电影书籍的微信小程序模板源码下载.rar
- 黑白简约排版电影日历的微信小程序模板源码下载.zip
- 黑白简洁线条交通航班查询的微信小程序模板源码下载.zip
- 黑色keep more运动购物商城的微信小程序模板下载.rar
- 黑洞仓库包裹的微信小程序页面模板源码下载.zip
- 黑白九宫格排版中华好诗词教育的微信小程序模板源码下载.rar
- 黑色宝宝玩字母的微信小程序页面模板源码下载.zip
- 黑色LOL实时战绩的微信小程序模板源码下载.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功