目录

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 万,还只是单机房设计,远远不能满足系统稳定运行要求;同时通过秒杀活动会拉新业务量会进一步增长。为保障业务未来一段时间平稳运行,需要将当单机房扩建为同城双中心,时间允许的情况下,跳过灾备方式,直接从单机房升级为双活架构,确保秒杀业务万无一失。

毕业设计-电商秒杀系统相关推荐

  1. 电商库存锁_解密 Redis 助力双 11 背后电商秒杀系统

    作者:AlibabaCloud 来源:https://github.com/AlibabaCloudDocs/kvstore/blob/master/cn.zh-CN/最佳实践/使用%20Redis% ...

  2. Java电商秒杀系统性能优化(一)——电商秒杀系统框架回顾

    电商秒杀系统框架回顾 项目简介 外部依赖 框架回顾 项目要点 项目中存在的问题 小结 课程是免费的,课程地址如下:SpringBoot搭建电商秒杀项目,课程真的很棒,作者的思路很清晰,建议各位读者可以 ...

  3. 电商秒杀系统相关实现

    前言 本文主要就电商秒杀系统所涉及的相关技术进行探究,相关Demo地址如下: 个人实现版本:https://github.com/MrSorrow/seckill Github Star较高的版本,第 ...

  4. Java实现电商秒杀系统-jseckill

    1.前言 什么是秒杀?双十一,双十二天猫京东优惠大促销,大量的用户去抢夺少量的商品,在段时间内抢完,称之为秒杀.典型的高并发应用场景. 2.简介 电商秒杀系统,要求并发量特别大,用Java实现秒杀系统 ...

  5. 万字好文,电商秒杀系统架构分析与实战

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 1 秒杀业务分析 ...

  6. 万字好文,电商秒杀系统架构分析与实战!

    1 秒杀业务分析 正常电子商务流程 (1)查询商品:  (2)创建订单:  (3)扣减库存:  (4)更新订单:  (5)付款:  (6)卖家发货: 秒杀业务的特性 (1)低廉价格:  (2)大幅推广 ...

  7. 使用Redis搭建电商秒杀系统

    作者:小热爱 来源:https://juejin.cn/post/6955372476649963556 秒杀活动是绝大部分电商选择的低价促销.推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台 ...

  8. 解密 Redis 助力双 11 背后电商秒杀系统

    背景 秒杀的特征 秒杀系统 背景 秒杀活动是绝大部分电商选择的低价促销.推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度. 一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的 ...

  9. 阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

    秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度.一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒 ...

最新文章

  1. 十五、“一路风光无限好,鸣嘤处处贺新婚。”(2021.5.3)
  2. 三星为什么要卖芯片?手机干不过华为小米,半导体好挣钱!
  3. php对象不公用属性赋值,php 框架 Model 公用的问题
  4. yii2不用composer使用redis
  5. weak和assign的区别
  6. python中怎么调用sort_python中sort()方法的cmp参数
  7. Axure RP入门知识-基础功能介绍
  8. csgo控制台所有代码飞天_CSGO控制台指令汇总
  9. 高琪飞机项目飞机爆炸图片_爆炸式的工作机会和多项目同步
  10. Python-飞机大战(二)
  11. OSChina 周四乱弹 ——来,带你吃旋转寿司
  12. STM32之RTC实时时钟
  13. C++函数指针与成员函数指针
  14. 你是否对软件确认测试有了解,如何获取软件确认测试报告?
  15. 解决Mac无法关闭80端口,无法将hosts域名指向本地80端口
  16. (生活)Photoshop入门(不定时更新)
  17. 接口的 p99 p99.9 是什么意思
  18. Linux基础之命令【ls】
  19. Android:进程运行中被收回权限
  20. 千万不要使用360安全管家

热门文章

  1. CSP-J信息学奥赛考试大纲(入门级)
  2. 云分析迁移:顺应需求
  3. sci计算机画曲线图,SCI文章写作之图表处理
  4. Epson 打印机设置
  5. 根据下拉框的内容筛选数据
  6. nginx负载均衡和高可用
  7. photoswipe.js插件
  8. 2010年blog汇总:企业架构、敏捷个人、模型驱动
  9. Redis高级项目实战,16条代码规范建议
  10. 网页打开的html文件是错的,网页上有错误