写点什么

毕业设计项目 - 电商秒杀系统

作者:小朱
  • 2022 年 1 月 16 日
  • 本文字数:739 字

    阅读完需:约 2 分钟

•1 业务场景

•2 业务复杂度分析

•3 存储架构

•4 缓存架构

•5 负载均衡架构

•6 可扩展设计

•7 高可用设计

•8 完整的技术架构图


1 业务场景

•注册登录、浏览商品、搜索商品、秒杀、下订单、支付


2 业务复杂度分析

•商品种类 <= 200 (10 个品类* 20 )

•用户日活 100 万

•假设活跃用户占比 40%,则总共注册用户 100 万/40%=250 万,存储用户信息 250 万条

•存储商品信息 200 条(区分基本信息、图片信息)

•存储订单:1000(1000 个充电宝)+10(10 个 iphone12)条

•存储秒杀信息:1000(1000 个充电宝)+10(10 个 iphone12)条

•存储支付信息:数量与订单类似

•日活 100 万用户,假设系统流量高峰集中在上午 9-11 点、下午 15:00-17:00 和晚上 21:00-23:00,共 6 个小时。

•注册登录 tps:100 万*1/6/3600=约 50

•假设平均每个人浏览 20 个商品,则查看商品 qps~~100 万*20/6/3600=约 1000,搜索商品 qps 小于 1000

•假设平均每个人买 2 个商品,则下单 tps:100 万*2/6/3600=约 100,支付 tps 最高也是约 100

•618 秒杀时,假设秒杀时间定在晚上 21 点整,则此时秒杀交易 tps 最高可达:100 万。为尽可能减少对服务器的压力,需要尽可能将页面静态化,将 css,js,图片等静态资源存储到 CDN。这样在秒杀前的用户访问请求到达不了应用服务器,直到秒杀开始后,点击“秒杀”的那一下,访问请求才访问应用服务器。

•秒杀下单 tps:1000+2=1002。

•综合考虑,存储数据量和 tps,单个 mysql 服务器差不多能应对关系数据的存储与访问。稳妥起见,采用 mysql 主从同步模式。从服务器分担一些主服务器的读请求。


3 存储




4 缓存

根据 2 的分析,多级缓存架构如下:

其中 redis 采用 redis cluster 分片模式:


5 负载均衡


6 可扩展

•秒杀场景对服务性能要求很高,所以应将秒杀作为单独的微服务,避免影响其它服务,与用户、商品、订单、支付等服务独立开。


7 高可用架构


8 完整的技术架构图


发布于: 刚刚阅读数: 2
用户头像

小朱

关注

还未添加个人签名 2021.06.29 加入

还未添加个人简介

评论

发布
暂无评论
毕业设计项目-电商秒杀系统