毕业设计电商秒杀系统
【业务背景】
你作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:
1.你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;
2.本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone 12 作为秒杀商品;
3.正常的日活大约 100 万用户;
4.老板要求万无一失。
一、电商秒杀系统的复杂度分析
a) 业务复杂度: 秒杀系统本身业务逻辑并不复杂,就是按照先到先得的一个逻辑,库存不能超卖。
b)性能复杂度:假设全部的日活用户都来参与秒杀活动,并且访问集中在秒杀前后 1 分钟 内,商品的查询 QPS=1000000/60=1.6 万;秒杀接口的 TPS 可以认为也是 1.6 万。
c)高可用复杂度:秒杀的核心库存控制是有强一致要求的,所以主从复制延迟要求非常低。同时考虑到创业公司财力有限,可以做单 DC 的主从 redis 集群,同时业务逻辑上可以加一些限流与概率逻辑,控制住比如每 50ms 只能售出的商品的数量只能是一台,这样就降低了主从复制延迟造成的风险。
二、总体架构设计
三、存储架构设计
秒杀商品种类有 20*10=200(个)。秒杀产生的记录,1000+10=1010(条)。
数量均不大,考虑之前分析的高性能复杂度,qps/tps 在 1.6 万左右。会需要使用高性能
缓存集群 redis 做为商品信息缓存,以及商品库存的记录。考虑到库存的强一致要求,可以采用主备架构,
至于其他信息可以存储在 mysql 中,并采用主备结构。
评论