写点什么

架构实战营 毕业设计

用户头像
iProcess
关注
发布于: 5 小时前

毕业设计项目

设计电商秒杀系统

【业务背景】

你作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:

1. 你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;

2. 本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone 12 作为秒杀商品;

3. 正常的日活大约 100 万用户;

4. 老板要求万无一失。

【技术背景】

1. 技术团队以 Java 为主,已经落地了微服务架构;

2. 主要渠道是自有的 App(包括 iOS 和 Android)和微信小程序,为了促进用户转化为 App 用户,只有下载 App 才能参加秒杀活动;

3. 目前只有单机房。

【毕设要求】

1. 设计完整的架构,例如存储、负载均衡、缓存、高可用、可扩展等;

2. 大约 10 页以内的 PPT,每页 PPT 说明一项设计,包括架构设计和设计理由,无需详细解释备选方案。

【提示】

1. 分析考虑要全面,但并不意味着架构设计要面面俱到,如果分析后认为某些设计点可以不做,就在作业最后统一说明原因即可;

2. 如果没有思路,请对照模块 9 的 IM 案例;

3. 如果有的信息觉得不够全或者不够细,可以做出一定的假设,但不能天马行空,需要对照已有的业务背景和技术背景进行合理推断。


一、业务分析

正常的日活大约 100 万用户,假设大促期间有 10 倍的正常活跃用户数参与,大促期间的活跃用户数是 1000 万,根据二八法则和不同时间段访问用户不同,预估秒杀峰值用户数在 800 万上下。有 1000 个充电宝和 10 台 iPhone12,由于充电宝相对 iPhone12 来说比较便宜且数量多,参与秒杀的人数可能会比较多,800 万用户中,假如有 20%参与 iPhone12 的秒杀,80%参与充电宝的秒杀,8000.2=160 万参与 iPhone12 秒杀,80008=640 万参与充电宝的秒杀。

二、整体架构

采用 mysql 存储秒杀数据,采取 Sharding-JDBC 是为了能够同时并发读写数据,提供性能和后续扩展,同时采用 redis-cluster 的目的是和业务系统共用一套 redis,但采用不同的分片即可,用 redis 的分布式锁保证库存不超卖。


三、存储架构

mysql 主备防止主库宕机,数据丢失,redis 同样需要备份库保证数据和服务的高可用。


四、缓存架构设计

五、负载均衡设计


总结:

通过华仔老师的架构实战营课程,对自己的架构理解认知提升了很多,尤其是面向复杂度的架构设计、架构设计环,结合架构设计的前/中/后期,完整的架构设计生命周期,总结的非常棒,受益匪浅。以后将会结合实际,将面向复杂度的架构设计运用到实际工作中去。


发布于: 5 小时前阅读数: 6
用户头像

iProcess

关注

还未添加个人签名 2018.03.06 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 毕业设计