毕业设计-电商秒杀系统
目录
1.业务背景
2.基本场景
3.重点场景分析
3.1.浏览秒杀商品
3.2.下单
4.存储架构设计
5.计算架构设计
5.1.负载均衡
5.2.多级缓存
6.高可用设计
7.可扩展设计
8.高可用架构设计
本次毕业设计的题目是电商秒杀系统。
1.业务背景
该系统的业务背景概括如下:
1.日活 100 万
2.20 个商品,10 个品类,共 200 个商品
3.秒杀商品有限,1000 个充电宝,10 台 iphone 12
4.团队以 java 为主,现有系统采用微服务架构
5.只有 app 才能秒杀
6.当前采用单机房
7.只限于秒杀系统设计
2.基本场景
该系统的基本业务场景如下:
基本场景包括注册、登录、浏览商品、下单、支付场景。其中:
1.注册 &登录场景
百万注册用户,每天活跃用户 40%,登录时读取用户信息是每天 40 万 QPS
2.浏览商品
共 20 个秒杀商品,商品数量忽略不计;
每月活跃用户约 40%。秒杀活动前会有推广活动,活跃用户会有提升,以 60%计算,约有 60 万用户同时在线浏览商品,tps 数为 600K。
3.下单
订单数量,秒杀商品共 1010 个,那么订单总数也为 1010 个,要求在 1s 内完成处理,因此 tps 为 1010。
4.支付
支付一般在 5 分钟内完成。tps 约为 1010/300=4tps,可忽略不计。
3.重点场景分析
3.1.浏览秒杀商品
1.业务特征分析
典型读场景,由于订单下了后仅有少量修改,因此适合用缓存架构
2.架构分析
1)用户量过百万,应用用多级负载均衡架构;
2)请求量 60 万,应该用多级缓存架构,考虑用三级缓存架构,app 缓存+web 容器缓存+分布式缓存,不用 CDN,因为业务量没那么大;分布式缓存用 redis,支持持久化,可以避免丢失订单。
3.架构设计
登录状态保存在分布式缓存中,请求发送给任意服务器都可以,选择轮询或者随机算法
4.业务服务器数量估算
由于浏览秒杀商品的处理逻辑比较简单,主要是读缓存系统,因此假设单台业务服务器处理能力是 1000/s,则机器数量为 60 台,按照 20%的预留量,最终机器数量为 75 台。
3.2.下单
1.业务特征分析
典型写操作,不能用缓存,用负载均衡
2.架构分析
用户量 60 万,选用多级负载均衡架构。选择 LVS,支持 60 万+性能
3.架构设计
1)负载均衡算法选择
下单的时候依赖登录状态,登录状态一般都是保存在分布式缓存中,因此下单的时候,讲请求发送给任意服务器都可以,选择轮询或者随机算法
2)业务服务器数量估算
按照一个服务每秒处理 500 来估算,支持 1010 个订单处理,需要三台服务器。
4.存储架构设计
5.计算架构设计
5.1.负载均衡
5.2.多级缓存
6.高可用设计
1.业务特征分析
1)下单
商品数量有限,下单会在 1s 内下单
2)浏览商品
商品数量有限,100w 用户同时浏览 2 个秒杀商品
2.架构设计分析
1)下单
下单性能要求比较高,可以考虑对“非秒杀订单”限流,由于非秒杀订单也是收入来源,因此不能丢弃请求,采用漏桶算法。
2)浏览商品
存在缓存热点问题,使用“多缓存副本”。
7.可扩展设计
将商品服务和订单服务拆分出来,支持秒杀活动,其中商品服务支持商品、浏览记录查询,浏览等操作;订单服务支持下单,订单查询等服务。拆分后的微服务架构如下:
8.高可用架构设计
当前系统月活已经到达 100 万,还只是单机房设计,远远不能满足系统稳定运行要求;同时通过秒杀活动会拉新业务量会进一步增长。为保障业务未来一段时间平稳运行,需要将当单机房扩建为同城双中心,时间允许的情况下,跳过灾备方式,直接从单机房升级为双活架构,确保秒杀业务万无一失。
毕业设计-电商秒杀系统相关推荐
- 电商库存锁_解密 Redis 助力双 11 背后电商秒杀系统
作者:AlibabaCloud 来源:https://github.com/AlibabaCloudDocs/kvstore/blob/master/cn.zh-CN/最佳实践/使用%20Redis% ...
- Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾
电商秒杀系统框架回顾 项目简介 外部依赖 框架回顾 项目要点 项目中存在的问题 小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以 ...
- 电商秒杀系统相关实现
前言 本文主要就电商秒杀系统所涉及的相关技术进行探究,相关Demo地址如下: 个人实现版本:https://github.com/MrSorrow/seckill Github Star较高的版本,第 ...
- Java实现电商秒杀系统-jseckill
1.前言 什么是秒杀?双十一,双十二天猫京东优惠大促销,大量的用户去抢夺少量的商品,在段时间内抢完,称之为秒杀.典型的高并发应用场景. 2.简介 电商秒杀系统,要求并发量特别大,用Java实现秒杀系统 ...
- 万字好文,电商秒杀系统架构分析与实战
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 1 秒杀业务分析 ...
- 万字好文,电商秒杀系统架构分析与实战!
1 秒杀业务分析 正常电子商务流程 (1)查询商品: (2)创建订单: (3)扣减库存: (4)更新订单: (5)付款: (6)卖家发货: 秒杀业务的特性 (1)低廉价格: (2)大幅推广 ...
- 使用Redis搭建电商秒杀系统
作者:小热爱 来源:https://juejin.cn/post/6955372476649963556 秒杀活动是绝大部分电商选择的低价促销.推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台 ...
- 解密 Redis 助力双 11 背后电商秒杀系统
背景 秒杀的特征 秒杀系统 背景 秒杀活动是绝大部分电商选择的低价促销.推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度. 一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的 ...
- 阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统
秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度.一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒 ...
最新文章
- 十五、“一路风光无限好,鸣嘤处处贺新婚。”(2021.5.3)
- 三星为什么要卖芯片?手机干不过华为小米,半导体好挣钱!
- php对象不公用属性赋值,php 框架 Model 公用的问题
- yii2不用composer使用redis
- weak和assign的区别
- python中怎么调用sort_python中sort()方法的cmp参数
- Axure RP入门知识-基础功能介绍
- csgo控制台所有代码飞天_CSGO控制台指令汇总
- 高琪飞机项目飞机爆炸图片_爆炸式的工作机会和多项目同步
- Python-飞机大战(二)
- OSChina 周四乱弹 ——来,带你吃旋转寿司
- STM32之RTC实时时钟
- C++函数指针与成员函数指针
- 你是否对软件确认测试有了解,如何获取软件确认测试报告?
- 解决Mac无法关闭80端口,无法将hosts域名指向本地80端口
- (生活)Photoshop入门(不定时更新)
- 接口的 p99 p99.9 是什么意思
- Linux基础之命令【ls】
- Android:进程运行中被收回权限
- 千万不要使用360安全管家