阿里 P7 面试官:怎么设计直播场景下的秒杀系统?

马老师说过,员工的离职原因很多,只有两点最真实:钱,没给到位;心,受委屈了,但是还有第三点,无法成长,特别是后端工程师特别容易沉默在对系统的修修补补,业务不景气,技术场景也没办法拓展。


最近直播带货、秒杀活动,所以我带着对背后的技术的好奇(找面试题),看到一个关于P7 的面试《怎么设计双十一的秒杀系统?》的问题,在寻找资料的过程中,收获颇多。




秒杀系统分析




当下技术挑战更强还是以直播居多,以当下最火的直播秒杀为例,假设是某个主播准备开一个秒杀产品,观看直播的有三百万在线,需要考虑到以下几个方面:

  • 及时增加的网络及服务器带宽,不论是图片资源还是文字,瞬间十万的点击,想必对宽带的要求巨高。
  • 如何控制秒杀商品页面购买按钮的点亮与置灰?页面的是设计为动态修改还是直接静态?
  • 设置好定时秒杀,如果卖家或者主播在秒杀前对商品做编辑,带来的影响会如何处理?
  • 如何保证成功秒杀到商品,用户只有一个,不会产生超卖?

  • 这里有个有意思的点,看李佳琦的直播秒杀顺畅度要比罗永浩罗老师的直播间高太多。顺着思路,背后的技术实力,可以做一个小小对比。
    顺着思路,可以设计一个简单的架构:




    秒杀系统设计





    这里我们可以对系统设计分为两个阶段:

  • 第一阶段:秒杀开始前到秒杀开始, 用户在准备阶段等待秒杀;
  • 第二阶段:秒杀开始到获得秒杀结果

  • 第二阶段,这里就涉及到三个点:

  • 高性能:  如何支撑高并发,如何抵抗高 IOPS?
  • 一致性:有限的商品在同一时间被多个请求同时扣减,而且要保证准确性,如何做到不多不少?
  • 高可用:业务流量的激增、依赖服务稳定性与物理资源的瓶颈如何处理?



  • 秒杀系统架构上的问题




  • 如何保证数据的可用性?

  • 如何保证数据库“读”高可用?

  • 冗余读库带来的副作用?读写有延时,可能不一致。如何保证数据库“写”高可用?

  • 如何保证一致性?

  • 如何提高数据库的扩展性?

  • 高并发下的数据安全如何保证?

  • 如何预防和面对突发问题,系统设计时应该从哪些方面着手?


  • 除去技术的问题,还有安全问题如何避免?上述的问题基本都是秒杀系统问题的难点,不过网上的资料还是比较繁杂,后面我试着找一些系统的课程学习。这里我推荐滴滴出行高级专家工程师刘忠旭讲的 《大厂电商Java秒杀系统架构实战》 ,从基础的设计到时间,系统的讲解大厂电商秒杀系统架构方方面面。看完面试涨薪应该没问题。

    限时优惠,点击图片,查看课程详情




    课程介绍




    初入职场,很多小伙伴反馈说,高并发学了那么久,但是在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了!

    其实重点是转换思维方式,从简单的提供接口(CRUD)阶段,如何踏入系统架构设计的领域

  • 如何保障系统高可用?
  • 能否讲清楚系统面临哪些技术挑战和业务挑战?

  • 本课程从秒杀场景出发,分为 基础篇进阶篇架构篇 3 部分

  • 基础篇重点在于实现功能(导购、交易)
  • 进阶篇重点突破超卖、突发流量给系统带来的挑战,高并发银弹,缓存如何使用;
  • 架构篇重点讲解如何保障系统高可用(方法论+最佳实践)



  • 案例介绍




  • 营销体系
  • 超卖解决方案
  • 多级缓存解决方案
  • 商品模型设计
  • 交易平台架构设计
  • 电商架构高可用设计



  • 你能学到什么




  • 通过秒杀这个典型的高并发场景,彻底搞明白高并发系统该如何设计。
  • Spring Boot 整合 (guava, caffeine,redisson, mybatis-plus, druid, Lombok, swagger2)等等
  • 彻底解决超卖、多级缓存设计、限流实现
  • 高可用架构设计



  • 适用行业




  • 社区电商、团购、互联网新零售,电商平台



  • 课程大纲




    限时优惠,点击图片,查看课程详情




    讲师介绍





    刘忠旭
    滴滴出行高级专家工程师&橙心优选营销体系负责人,互联网架构技术专家,“spring boot”课程作者。曾任蘑菇街高级技术专家,58同城技术经理,高级架构师,技术学院优秀讲师。技术人一枚,架构略懂。

    限时优惠,点击图片,查看课程详情


    点击   阅读原文  ,查看课程详情