写点什么

毕业设计项目:设计电商秒杀系统

作者:炎彬
  • 2022 年 5 月 15 日
  • 本文字数:954 字

    阅读完需:约 3 分钟

一、作业要求

【业务背景】

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

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

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

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

老板要求万无一失。

【技术背景】

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

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

目前只有单机房。

【毕设要求】

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

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

【提示】

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

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

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


二、设计方案

思考 1:秒杀活动的目的是啥?

从利益干系人的角度来思考,秒杀活动只允许 APP 用户参与,很大程度的一个目的是为了增加 APP 用户的活跃度,引导用户下载 APP,增加用户的粘度。


思考 2:活动万无一失的理解?

活动万无一失,既然是秒杀活动,商品定价肯定是赔钱的,所以不能超卖,售出数量要严格按照活动设定的数量;同时,还要达到服务的稳定和可用,不要因为秒杀活动造成系统服务挂了,影响到正常的下单购买业务,要提前做好流量预估,做好准备。


设计 1:缓存设计

将秒杀商品提前放到缓存系统中,避免秒杀开始之后,大量用户请求商品详情页,造成的请求压力。


设计 2:限流控制

根据预估的系统最大流量承受能力,进行多层级的限流控制,避免系统被压垮。


设计 3:增加消息队列,降低秒杀活动业务复杂度

对于秒杀活动库存和订单等流程的处理,加入消息队列进行异步处理,减少业务复杂度,对流量起到削峰的作用。


设计 4:微服务架构拆分

根据当前微服务的拆分粒度,采用“三个火枪手”原则,对微服务进行拆分,尽量增加微服务的可维护性。


设计 5:高可用架构设计

引入容器和服务编排系统,可以根据业务的负载情况,对服务集群进行弹性伸缩控制。


用户头像

炎彬

关注

还未添加个人签名 2021.08.26 加入

还未添加个人简介

评论

发布
暂无评论
毕业设计项目:设计电商秒杀系统_「架构实战营」_炎彬_InfoQ写作社区