双11的秒杀系统,是如何设计的?

Posted LintCode领扣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双11的秒杀系统,是如何设计的?相关的知识,希望对你有一定的参考价值。

国内双11如火如荼,接下来的感恩节、黑五、圣诞...又是一年“剁手季”,线上商城随处可见的秒杀系统,也成了近几年科技公司面试最爱的考题。



十个面试9个秒杀,我心态崩了


翻了翻近期国内大厂面经,发现字节、阿里、腾讯、美团、拼多多等一众大厂都在面试中问到了秒杀系统,说是“十个面试9个秒杀”真的毫不夸张。


双11的秒杀系统,是如何设计的?

对于缺乏大型项目经验的人来说,面试官上来的随便一问就可以问到你怀疑人生:

  1. 如何应对瞬时大流量高并发?

  2. 有限库存,如何防止超卖? 

  3. 如何保障系统稳定和高可用?

  4. 如何限制用户购买商品件数?

  5. 如何应对恶意请求和爬虫?

其实秒杀系统的本质就是一个满足高并发、高性能高可用分布式系统,上述五个问题也是搭建和维护一个超大流量秒杀系统的关键所在。因此,只要针对这些问题做出对应的解决方法即可。


比如第一个瞬时大流量高并发问题,解决的核心思想为:分层过滤,分而治之


你需要在不同的层次尽可能地过滤掉无效请求,让“漏斗”最末端的才是有效请求。 


双11的秒杀系统,是如何设计的?


具体实现步骤如下:

  1. 页面静态化

  2. 缓存预热

  3. 异步化

  4. 削峰值填谷,通过消息队列异步地创建订单

由于篇幅有限,其余4个问题的详细解决方案,我们将在《秒杀系统项目课》课程中深入讲解。


欢迎大家扫码免费试听

以上是关于双11的秒杀系统,是如何设计的?的主要内容,如果未能解决你的问题,请参考以下文章

如何设计出骚气的秒杀系统?

详解:如何设计出健壮的秒杀系统?

超详细:如何设计出健壮的秒杀系统?

面试官:如何设计出骚气的秒杀系统?

一个通用的秒杀系统设计模板

怎么能设计出一个骚气的秒杀系统?