毕业设计 - 电商秒杀系统
1.业务背景
你作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:
你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;
本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone 12 作为秒杀商品;
正常的日活大约 100 万用户;
老板要求万无一失。
2.技术背景
技术团队以 Java 为主,已经落地了微服务架构;
主要渠道是自有的 App(包括 iOS 和 Android)和微信小程序,为了促进用户转化为 App 用户,只有下载 App 才能参加秒杀活动;
目前只有单机房。
2.详细设计
2.1 存储性能估算
注册:
日活 100 万,注册用户数 1000 万
登录:
正常日货是 100 万,618 当日日活为平常 2 倍,200 万
假设活动开始前 5 分钟内登录,200 万/60*5=6000tps
商品:
商品存属性及秒杀数量都存到 redis 中
秒杀记录:
秒杀成功后,在 redis 中记录秒杀记录,同时更新 redis 的秒杀数量
6000tps 的登录对系统的性能要求,假设现有系统的架构是可以满则要求的
数据库选用 mysql,主备,商品缓存用 redis,利用之前的 redis 的 cluster 集群做缓存
2.2 计算高性能
假设秒杀开始 1 秒内,有 50%的用户参加秒杀,60 万*50%=30 万 tps,这么大流向对现在架构肯定撑不住,因此需要增加网关进行限流,使用 springcloudgateway+sentinel 进行限流操作,将到达应用服务流量保持在 1000tps(应用承受的负载),其它请求都直接拒绝。
2.3 可扩展及高可用
秒杀服务,可以单独部署,并且集群部署,实现可扩展及高可用
评论