天道酬勤,学无止境

秒杀设计

「面试高频」秒杀架构的设计套路,你值得拥有!

本篇文章我们开始我们来聊下秒杀架构的相关内容,秒杀架构可以说是综合性非常强的一个场景,而且面试官特别喜欢基于这个场景进行提问,因此有必要好好了解下。 在正式开始之前,我们先来回顾下前面几篇文章的内容。 在第五篇中我们聊了缓存,我们先把数据存放到缓存中,每次请求通过缓存读取数据,大大减少了数据库读请求的压力。第六篇文章里我们聊了写缓存,流量洪峰时,我们先将数据写入缓存中,再逐步搬运数据到数据库,大大较少了数据库写请求的压力。第七篇文章里我们聊了数据收集,利用消息队列我们可以把缓存中的数据搬运到数据库中。而这几篇文章中涉及的架构设计思路,本篇文章中我们都会用到。 一、业务场景七 有一个秒杀活动,该活动提供了100件特价商品(商品价格非常低)供用户于10月10日22点10分0秒正式开始秒杀。 当时,平台已经积累了几千万的用户量,预计数十万的用户对此特价商品感兴趣。按照秒杀活动的调性,特价商品一般会在1-2秒内被一抢而光,剩余时间涌进来的流量只能看到秒杀结束界面,因此我们预测秒杀开启那一瞬间会出现一个瞬间流量峰值。 这也是一场短暂性的活动,不能添加太多的服务器,也不能花太多的时间重构,说白了也就是需要以最小的技术代价搞定这次秒杀活动。 因此,我们这次秒杀架构的设计目标是以较小的改动保证秒杀时间的流量洪流不会冲垮服务器。 对于秒杀架构设计而言,其难点在于僧多粥少,因此在设计秒杀架构时

2021-03-27 01:23:59    分类:博客    秒杀设计   架构设计   架构实战   软件架构设计