写点什么

架构营模块九作业

作者:GTiger
  • 2022 年 1 月 15 日
  • 本文字数:672 字

    阅读完需:约 2 分钟

秒杀系统架构毕业设计

1、总体分析

a. 正常日货已经达到 100 万,推断用户数量在千万级别,秒杀活动大概会带来 5 倍流量进来,所以预计流量 500 万。

b. 基于业务已经落地微服务,为了秒杀活动不影响正常业务请求,可以将秒杀系统单独部署。

c. 商品及其品类并不多,可以考虑使用 MySQL 主备+redis 缓存存储即可。

d. 秒杀商品固定,并且只能下载 app 才能参加活动,可以在 app 本地做页面缓存。后端可以采取 redis 进行数据缓存。

e. 服务端可以增加消息队列进行活动过程中流量的削峰填谷,复制大量请求压垮服务器。

f. 后端计算架构可以采取 Nginx 做负载均衡,是流量请求到不同的后端应用服务器上。


2、性能估算

a. 存储性能估算

秒杀系统中需要存储秒杀物(充电宝+Iphone12)及促销物(10 个品类,每个品类不超过 20 个商品)信息。

秒杀成功用户 ID, 其数量为 1000+10=1010。

b. 计算性能估算

正常日活为 100w, 大促期间,假设有 5 倍人数参与活动,则总共有 500w 人参与秒杀活动;

获取秒杀页面:假设平均而言提前 10 分钟获取,则:500w/10min =8333 QPS

参加秒杀活动:假设平均每个用户在 1 分钟之内完成秒杀,则:500w/60s =83333 TPS

3、架构设计

a. 存储架构设计

b. 计算架构设计

c. 缓存架构设计


d. 负载均衡架构设计

4、其他架构设计

a. 高可用架构设计

为了避免秒杀活动的大量流量压垮服务器,可以将活动单独部署到统统双机房,做到同城双活,从而提高系统可用性。

b. 服务限流

因为秒杀商品数远少于用户请求数量,可以使用令牌桶控制秒杀流量,通过将令牌数设置成商品数量一样的策略,当两者相同时,就可以将其他流量丢弃掉,使得只有少部分秒杀到商品的流量才会进入后续服务。


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

GTiger

关注

还未添加个人签名 2017.12.08 加入

还未添加个人简介

评论

发布
暂无评论
架构营模块九作业