模块九作业 - 设计电商秒杀系统
【业务背景】
作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:
你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;
本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone 12 作为秒杀商品;
正常的日活大约 100 万用户;
老板要求万无一失。
【技术背景】
技术团队以 Java 为主,已经落地了微服务架构;
主要渠道是自有的 App(包括 iOS 和 Android)和微信小程序,为了促进用户转化为 App 用户,只有下载 App 才能参加秒杀活动;
目前只有单机房。
性能估算
关键数据:日活 100w 用户,1000 个充电宝,10 台 iphone
假设用户活跃时间为中午 1 小时和晚上 4 小时,秒杀时活跃用户数是平常的 10 倍,秒杀持续时间为 15 秒,尝试下单 5 次
秒杀场景的功能包括:查看商品、读取库存、下单、支付
查看商品 QPS: 100w/5*10/60/2 = 4w
读取库存 同查看商品 QPS: 4w
下单 TPS: 1010/15*5 = 350
支付 TPS: 1010/15 = 70
计算架构
负载均衡
缓存架构
采用 3 级缓存架构
存储架构
MySql 主备(订单数据)
缓存 Redis Cluster (商品数据、库存数据)
可扩展架构
秒杀系统做成单独的微服务,与其他服务相互独立,降低耦合
评论