# 分布式秒杀系统
交流群:933593697
小伙伴们运行前一定要看文档说明:https://gitee.com/52itstyle/spring-boot-seckill/wikis
**墙裂推荐,一个能够让程序猿快速开发的极简工具箱:https://gitee.com/52itstyle/SPTools**
## 分库分表案例
[1)分表案例](https://gitee.com/52itstyle/spring-boot-sharding-sphere/tree/master/sub-table)
[2)分库分表案例](https://gitee.com/52itstyle/spring-boot-sharding-sphere/tree/master/sub-db-table)
[3)读写分离案例](https://gitee.com/52itstyle/spring-boot-sharding-sphere/tree/master/db-read-write)
[4)分库分表读写分离案例](https://gitee.com/52itstyle/spring-boot-sharding-sphere/tree/master/sub-db-table-read-write)
## 抢红包案例
[微信高并发抢红包秒杀实战案例](https://blog.52itstyle.vip/archives/5103/)
[微信抢红包过期失效实战案例](https://blog.52itstyle.vip/archives/5135/)
[推荐一款高效的处理延迟任务神器](https://blog.52itstyle.vip/archives/5150/)
[推荐一款基于Redis的高可用延迟队列](https://blog.52itstyle.vip/archives/5163/)
## 推荐
小黄图床:https://tools.cloudbed.vip
妹子图小程序:https://gitee.com/52itstyle/mzitu
快速开发:https://gitee.com/52itstyle/SPTools
支付服务:https://gitee.com/52itstyle/spring-boot-pay
任务调度:https://gitee.com/52itstyle/spring-boot-quartz
邮件服务:https://gitee.com/52itstyle/spring-boot-mail
搜索服务:https://gitee.com/52itstyle/spring-boot-elasticsearch
私人网盘:https://gitee.com/52itstyle/spring-boot-CloudDisk
## 开发环境
JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、kafka_2.11、redis-2.8.4、curator-2.10.0
win环境redis:https://gitee.com/52itstyle/spring-boot-seckill/tree/master/src/main/resources/redis
## 启动说明
- 启动前 请配置 application.properties 中相关redis、zk以及kafka相关地址,建议在Linux下安装使用。
- 数据库脚本位于 src/main/resource/sql 下面,启动前请自行导入。
- 配置完成,运行Application中的main方法,访问 http://localhost:8080/seckill/swagger-ui.html 进行API测试。
- 秒杀商品页:[http://localhost:8080/seckill/index.shtml](http://localhost:8080/seckill/index.shtml) ,部分功能待完成。
- 本测试案例单纯为了学习,某些案例并不适用于生产环境,大家根据所需自行调整。
## 测试入口
http://localhost:8080/seckill/swagger-ui.html
![API](https://images.gitee.com/uploads/images/2018/0822/182938_cd8b14a3_87650.png "API.png")
## 项目截图
![秒杀商品列表](https://images.gitee.com/uploads/images/2018/0812/153301_3a86c8f4_87650.png "P1V_MX5VC67{PTQOXFLMTXE.png")
![商品详情页](https://images.gitee.com/uploads/images/2018/0927/175924_a52d66a5_87650.png "1.png")
![秒杀验证码](https://images.gitee.com/uploads/images/2018/0927/175801_b6262c1c_87650.png "2.png")
## 友情提示
由于工作原因,项目正在完善中(仅供参考),随时更新日志,有疑问请留言或者加群
#### 项目介绍
SpringBoot开发案例从0到1构建分布式秒杀系统,项目案例基本成型,逐步完善中。
![输入图片说明](https://gitee.com/uploads/images/2018/0515/184423_fe86c5a6_87650.jpeg "3125351756.jpg")
## 秒杀场景
秒杀场景无非就是多个用户在同时抢购一件或者多件商品,专用词汇就是所谓的高并发。现实中经常被大家喜闻乐见的场景,一群大妈抢购打折鸡蛋的画面一定不会陌生,如此场面让服务员大姐很无奈,赶上不要钱了。
![输入图片说明](https://gitee.com/uploads/images/2018/0515/184529_44d682e6_87650.png "dama.png")
## 业务特点
- 瞬间高并发、电脑旁边的小哥哥、小姐姐们如超市哄抢的大妈一般,疯狂的点着鼠标
- 库存少、便宜、稀缺限量,值得大家去抢购,如苹果肾,小米粉,锤子粉(理解万岁)
## 用户规模
用户规模可大可小,几百或者上千人的活动单体架构足以可以应付,简单的加锁、进程内队列就可以轻松搞定。一旦上升到百万、千万级别的规模就要考虑分布式集群来应对瞬时高并发。
## 秒杀架构
![输入图片说明](https://gitee.com/uploads/images/2018/0515/184617_c7e13059_87650.png "秒杀架构.png")
#### 很多小伙伴问架构图是怎么画的,这里推荐一款在线作图工具 :[processon](https://www.processon.com/i/58c8a5c7e4b06344137ffc14)
#### 架构层级
- 一般商家在做活动的时候,经常会遇到各种不怀好意的DDOS攻击(利用无辜的吃瓜群众夺取资源),导致真正的我们无法获得服务!所以说高防IP还是很有必要的。
- 搞活动就意味着人多,接入SLB,对多台云服务器进行流量分发,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
- 基于SLB价格以及灵活性考虑后面我们接入Nginx做限流分发,来保障后端服务的正常运行。
- 后端秒杀业务逻辑,基于Redis 或者 Zookeeper 分布式锁,Kafka 或者 Redis 做消息队列,DRDS数据库中间件实现数据的读写分离。
#### 优化思路
- 分流、分流、分流,重要的事情说三遍,再牛逼的机器也抵挡不住高级别的并发。
- 限流、限流、限流,毕竟秒杀商品有限,防刷的前提下没有绝对的公平,根据每个服务的负载能力,设定流量极限。
- 缓存、缓存、缓存、尽量不要让大量请求穿透到DB层,活动开始前商品信息可以推送至分布式缓存。
- 异步、异步、异步,分析并识别出可以异步处理的逻辑,比如日志,缩短系统响应时间。
- 主备、主备、主备,如果有条件做好主备容灾方案也是非常有必要的(参考某年锤子的活动被攻击)。
- 最后,为了支撑更高的并发,追求更好的性能,可以对服务器的部署模型进行优化,部分请求走正常的秒杀流程,部分请求直接返回秒杀失败,缺点是开发部署时需要维护两套逻辑。
#### 分层优化
- 前端优化:活动开始前生成静态商品页面推送缓存和CDN,静态文件(JS/CSS)请求推送至文件服务器和CDN。
- 网络优化:如果是全国用户,最好是BGP多线机房,减少网络延迟。
- 应用服务优化:Nginx最佳配置、Tomcat连接池优化、数据库配置优化、数据库连接池优化。
## 全链路压测
- 分析需压测业务场景涉及系统
- 协调各个压测系统资源并搭建压测环境
- 压测数据隔离以及监控(响应时间、吞吐量、错误率等数据以图表形式实时显示)
- 压测结果统计(平均响应时间、平均吞吐量等数据以图表形式在测试结束后显示)
- 优化单个系统性能、关联流程以及整个业务流程
整个压测优化过程就是一个不断优化不断改进的过程,事先通过测试不断发现问题,优化系统,避免问题,指定应急方案,才能让系统的稳定性和性能都得到质的提升。
## 数据采集监控
[分布式跟踪工具Pinpoint初探](https://blog.52itstyle.vip/archives/2806/)
[Grafana+Telegraf+Influxdb监控Tomcat集群方案](https://blog.52itstyle.vip/archives/3208/)
[Grafana+Prometheus系统监控之MySql](https://blog.52itstyle.vip/archives/2059/)
[Grafana+Prometheus系统监控之Redis](https://blog.52itstyle.vip/archives/2049/)
[Grafana+Prometheus系统监控之SpringBoot](https://blog.52itstyle.vip/archives/2143/)
[阿里巴巴 Sentinel + InfluxDB + Chronograf 实现监控大屏](https://blog.52itstyle.vip/archives/4496/)
[SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储](https://blog.52itstyle.vip/archives/4460/)
[SpringBoot 2.0 + Nacos + Sentinel 流控规则集中存储](https://blog.52itstyle.vip/archives/4433/)
[SpringBoot 2.0 + 阿里巴巴 Sentinel
没有合适的资源?快使用搜索试试~ 我知道了~
【建站系统之新零售/网店/商城】spring-boot-seckill-master
共275个文件
java:92个
jpg:57个
md:42个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 34 浏览量
2023-07-05
21:20:25
上传
评论
收藏 43.63MB ZIP 举报
温馨提示
开发环境 JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、kafka_2.11、redis-2.8.4、curator-2.10.0 win环境redis:https://gitee.com/52itstyle/spring-boot-seckill/tree/master/src/main/resources/redis 启动说明 启动前 请配置 application.properties 中相关redis、zk以及kafka相关地址,建议在Linux下安装使用。 数据库脚本位于 src/main/resource/sql 下面,启动前请自行导入。 配置完成,运行Application中的main方法,访问 http://localhost:8080/seckill/swagger-ui.html 进行API测试。 秒杀商品页:http://localhost:8080/seckill/index.shtml ,部分功能待完成。 本测试案例单纯为了学习,某些案例并不适用于生产环境,大家根据
资源推荐
资源详情
资源评论
收起资源包目录
【建站系统之新零售/网店/商城】spring-boot-seckill-master (275个子文件)
nginx.conf 1KB
nginx.conf 733B
iview.css 221KB
shopdetail.css 12KB
ionicons.eot 118KB
goods.flt 26KB
logo.gif 5KB
search_bg_24.gif 3KB
sea_bg.gif 2KB
.gitignore 135B
1000.html 26KB
1003.html 26KB
1002.html 26KB
1001.html 26KB
index.html 4KB
SeckillController.java 10KB
SeckillServiceImpl.java 10KB
RedPacketController.java 8KB
SeckillDistributedController.java 7KB
SecurityAES.java 7KB
SeckillDistributedServiceImpl.java 7KB
RedissLockDemo.java 5KB
RedPacketService.java 5KB
SeckillPageController.java 5KB
AlgorithmVs.java 5KB
Snowflake.java 5KB
RedisUtil.java 4KB
WebSocketServer.java 4KB
RedissLockUtil.java 4KB
MergeSort.java 4KB
DoubleUtil.java 4KB
SecurityRSA.java 4KB
RedisConfig.java 3KB
SecurityDES.java 3KB
RedissonAutoConfiguration.java 3KB
DynamicQueryImpl.java 3KB
HeapSort.java 3KB
FindMedian.java 3KB
CreateHtmlServiceImpl.java 3KB
CuratorUtil.java 3KB
QuickSort.java 2KB
SeckillQueue.java 2KB
SentinelLimit.java 2KB
RedPacketMessage.java 2KB
RedissonProperties.java 2KB
NginxLimit.java 2KB
RedPacketDelayQueue.java 2KB
RedPacketQueue.java 2KB
TaskRunner.java 2KB
LimitAspect.java 2KB
SelectionSort.java 2KB
RedisSubListenerConfig.java 2KB
DynamicQuery.java 2KB
ZkLockUtil.java 2KB
InsertSort.java 2KB
RedPacketDelayQueue.java 2KB
IPUtils.java 2KB
EncrypSHA.java 2KB
ShellSort.java 2KB
ISeckillService.java 2KB
RedPacket.java 2KB
MD5Util.java 2KB
Seckill.java 2KB
LockAspect.java 2KB
TaskRunner.java 2KB
RedPacketDelayQueue.java 2KB
BubbleSort.java 2KB
RedPacketHashedWheelTimer.java 2KB
LockDemo.java 2KB
KafkaConsumer.java 1KB
RedisConsumer.java 1KB
SpringUtil.java 1KB
RedPacketRecord.java 1KB
ActiveMQConsumer.java 1KB
SwaggerConfig.java 1KB
Base64Encoder.java 1KB
SecurityBase64.java 1KB
Application.java 1KB
Result.java 1KB
RedPackage.java 1KB
SeckillEventMain.java 1KB
SuccessKilled.java 1KB
RrExceptionHandler.java 1KB
SeckillEventConsumer.java 1KB
RedPacketTimerTask.java 1KB
CreateHtmlController.java 1KB
DisruptorUtil.java 965B
HttpClient.java 960B
SeckillStatEnum.java 869B
IndexController.java 841B
RedPacketMessage.java 826B
RrException.java 825B
MyAdapter.java 762B
ServiceLimit.java 758B
SeckillEventProducer.java 750B
ISeckillDistributedService.java 729B
SeckillEvent.java 604B
ActiveMQSender.java 594B
IRedPacketService.java 586B
RedisSender.java 583B
共 275 条
- 1
- 2
- 3
资源评论
技术宅小伙
- 粉丝: 372
- 资源: 1799
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 此存储库收集了所有有趣的 Python 单行代码 欢迎随意提交你的代码!.zip
- 高考志愿智能推荐-JAVA-基于springBoot高考志愿智能推荐系统设计与实现
- 标准 Python 记录器的 Json 格式化程序.zip
- kernel-5.15-rc7.zip
- 来自我在 Udemy 上的完整 Python 课程的代码库 .zip
- 来自微软的免费 Edx 课程.zip
- c++小游戏猜数字(基础)
- 金铲铲S13双城之战自动拿牌助手
- x64dbg-development-2022-09-07-14-52.zip
- 多彩吉安红色旅游网站-JAVA-基于springBoot多彩吉安红色旅游网站的设计与实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功