手把手带你搭建秒杀系统
佘志东
前京东交易平台(上海)负责人、资深架构师
新⼈⾸单¥59
334 人已学习
课程目录
已更新 2 讲 / 共 16 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (1讲)
开篇词|如何设计一个高并发、高可用的秒杀系统?
免费
前期准备:技术选型与环境准备 (1讲)
01|直面痛点:秒杀系统的挑战和设计原则
手把手带你搭建秒杀系统
15
15
1.0x
00:00/10:37
登录|注册

开篇词|如何设计一个高并发、高可用的秒杀系统?

讲述:佘志东大小:9.74M时长:10:37
你好,我是志东,欢迎和我一起从零打造秒杀系统。
说起秒杀系统啊,我相信你一定听过,甚至亲身参与过秒杀活动。作为技术人,你应该也好奇和思考过秒杀系统背后的实现方案,或者你在面试的时候被问到过,毕竟说它是高频考点一点不夸张。
因此,可能你已经搜索过秒杀系统的实现,对其有了一定的了解。但我们常说理论和实践是有距离的,知道一些基本的设计理念,其实远不能完成体系化学习的目标。“纸上得来终觉浅,绝知此事要躬行”,我相信头部电商百万用户同时秒杀的实战经验,会是个不错的加持,可以帮助你深刻理解技术难点。
所以,我来了!作为曾经的头部电商平台的秒杀系统负责人,我经常会和同事、朋友们讨论秒杀系统,当然在设计过程中,我们也确实遇到了很多问题。那么作为整个专栏的开篇,我想先就学习秒杀系统的共性问题做一个解答,期望和你对齐目标,然后我们一起向终点发起挑战!欢迎加入思考。

三个问题

问题一:为什么需要秒杀系统?秒杀系统最大的优势是什么?
通俗点讲,电商平台的本质是在线上撮合买卖双方的购销需求,达成交易。虽然是线上交易,但也遵守朴素的经济学原理,供求关系决定了商品的经济活动。当供求平衡时,买方和卖方处于对等关系,双方是相对稳定、和谐的;当供大于求时,这时候市场成了买方市场,买方处于主动地位;当供不应求时,这时候市场是卖方市场,卖方处于有利的主导地位。
买卖双方的关系不同,决定了电商平台会采用哪种营销方式。当供大于求,一般会采用各种促销让利的方式,吸引消费者购买,常见的促销方式有单品满减、总价优惠、赠品、会员优惠等;当供不应求,就需要有计划地设置营销活动、用户参与门槛以及限购规则,尽可能的让商家利益最大化,同时惠及更广泛的消费者。
当供需出现极度不平衡时,不管是线下还是线上,都会出现抢购的情况。上面这张照片,是 1992 年深圳市首次发行股票时群众抢购的情况,“利”字驱动,抢到即是赚到,万人空巷。同样,在线上,当 1499 元平价茅台上架时,当抢到口罩意味着守护更多一份健康时,流量激增,更是盛况空前。因此,回答为什么需要秒杀系统,其实很简单,那就是商品的极度供不应求
那么秒杀系统又有哪些优势呢?对于这些极度供不应求的爆品,合理地设置活动,适时地释放库存,可以持续为电商平台带来稳定的热度和流量,可观的 VIP 会员费,以及技术口碑的认同。当然,通过秒杀系统,电商平台也可以对参与用户进行筛选,杜绝黄牛和刷子,让爆品惠及更广,更公平。
问题二:京东、阿里巴巴等头部电商平台都把建设秒杀系统放在了什么地位?
在头部电商平台,除了售卖我们前面讨论的爆品外,更多售卖的是普通商品,这两类商品特点鲜明,爆品具有流量激增的特点,而普通商品流量则比较均衡。
这里我想请你思考一下:如果这两类商品不加区别,直接在电商平台上一块进行交易,会有什么问题?
没错,灾难性的后果,容易引发平台 P0 级重大事故。究其原因,主要就在于秒杀流量是突发式的,而且流量规模很难提前准确预估,如果混合在一起,势必会对普通商品的交易造成比较大的冲击。
因此,对京东、阿里而言,即使需要投入新的资源,也是需要单独搭建一套秒杀系统的,它将作为交易体系非常重要的一个核心系统
可见,秒杀在京东、阿里具有非常重要的地位,它是非常重要的营销手段之一。每年的 618 和双 11 两次大促,京东都会投入大量的人力资源和机器资源来进行备战,在备战过程中,都会将其作为一个独立专项进行推进,从专项架构梳理、流量预估、全链路压测,到专项预案演练等,再到集团技术 VP 的专项汇报,都体现了秒杀在大厂中不可或缺的地位。
而在平常,由于爆品运营的日常化,秒杀系统每天都在承担着重要的使命,同理对技术团队来说,每天都需要像大促那样做好秒杀的稳定保障工作。
问题三:秒杀系统对于电商技术从业者意味着什么?为什么要学习秒杀系统?
秒杀系统是电商技术从业者绕不开的一个话题,大到京东、阿里这样的头部电商,小到新兴的社区团购公司,都需要通过秒杀促销活动进行拉新留存,或持续引流保持热度。因此对于从事电商行业的同学来说,设计和开发秒杀系统就是一门必修课。
退一步说,即便是电商领域范围广、内容多、分工细,当前你的工作范围并不涉及秒杀系统,你也可以花些时间来系统学习一下。
一方面,这门课程里介绍的一些高可用、高性能、高并发的设计思路遵循普适的原则,在设计其他电商系统时你可以举一反三;另一方面,据我了解,大部分的电商面试场景都会考核秒杀系统的设计能力,而从我自身这么多年作为面试官的经验来看,很多候选人或多或少能描述出一些秒杀的设计思路,比如有些同学知道怎么进行库存控制,有些知道隔离,有些知道限流等等,但是能够系统地讲出怎么设计一个秒杀系统,这样的候选人少之又少。
讨论完这几个问题,你是不是已经开始好奇这门秒杀课会有什么不一样的地方?毕竟电商发展到今天,秒杀系统已经不是个新鲜的话题了。那么闲话少叙,我们一起看看课程设计。

课程设计

首先,我们说说课程亮点。为了让你对秒杀系统有一个全面的认知,这门课程我会手把手带你搭建一个秒杀系统,从基础的设计原则讲起,到高阶的设计技巧实战都会涉及,你看到的、学到的将是一个可扛百万流量的秒杀实战项目
这里我十分鼓励你跟着课程一步步验证,就像我开始说的,没有什么是比你亲手实践一遍收获更大的。这里附上 GitHub 地址:https://github.com/sanyecao-seckill,以及所使用的编程语言:Nignx 服务有 Lua 语言,后端服务都是 Java。
所以说,这门课的受众目标也会较为广泛,它既适用于没有太多经验的初级工程师学习和参考,也可以让相对经验丰富的高级电商从业者查漏补缺,完善学习体系。
接下来,我们看看具体内容,共分为六个部分。
前期准备:这部分我会从秒杀的业务挑战开始讲起,带你看看电商平台的秒杀玩法,总结设计原则;接着我会带着你做秒杀的技术选型,安装基础环境。
系统动工:这部分的内容比较基础,我会对秒杀系统进行业务解构,开始着手搭建秒杀的项目工程,梳理秒杀的业务流程,分析系统提供的接口,填充秒杀的业务实现,最终完成一个最简秒杀系统。
稳定压倒一切:这部分聚焦在“稳”上,在最简秒杀系统的基础上,我将带着你进行高可用建设,重点讲解秒杀的隔离、流控、削峰、限流、降级、热点和容灾。
准确无误:这部分聚焦在“准”上,我们将通过防刷和风控,学习如何保证商品不卖给黄牛和刷子,以确保秒杀的公平性;接着会介绍秒杀的库存和限购设计,以确保商品不超卖,符合限购规则。
雷令风行:这部分聚焦在“快”上,我将带着你一起进行系统优化,从而让我们的秒杀系统响应更快,用户体验更好。
尾声:最后就是总结部分,梳理整个实战项目的关键点;另外我将结合自身经验,带给你在头部电商的秒杀玩法中,除了上述技术内容外的业务协同思考。
值得一提的是,每节课我都会布置一道思考题,你要做好准备哦,我们可以一起互动解决。

自我介绍

那么分享到这里,你可能还不认识我,这里做个自我介绍。
我叫佘志东,本科和硕士均毕业于华中科技大学。参加工作后,到目前为止,我的职业生涯可以分为两个阶段。第一个阶段是通讯行业,主要服务于朗讯、思科、华为等头部通讯公司,从 Java 工程师成长为软件架构师,是早期思科视频云平台的设计者和核心开发者。
从 2015 年开始,我进入了互联网行业,先后服务过唯品会、京东等知名互联网公司,任职资深架构师,擅长高并发分布式软件架构与开发,也是京东交易平台上海团队负责人,曾负责过京豆、预售、秒杀等核心系统。
每年的 618 和双 11,京东大促看交易,交易大促看预售开门红,历经了三年内预售流量和订单增长十几倍的系统稳定性的巨大挑战。2020 年初,在疫情背景下,我带领团队日夜奋战,为全民抢购口罩项目保驾护航,所负责的秒杀系统成功扛住了三百万人同时秒杀的巨大压力。
作为一个常年奋战在一线的架构师,我为我参与过的项目感到自豪,也希望能在这里将这份收获与沉淀传递给你!
随着技术变革,秒杀系统、电商行业乃至整个互联网还会迎来诸多挑战,时代会对技术人提出更高的要求。所以,在当下,我们更应该时刻保持好奇心,保持求知欲,保持激情。“学海无涯苦作舟”,让我们一起苦中作乐,通过学习持续武装自己!
最后,希望这门课能让你在动手实践中,对秒杀系统有一个新的感悟。更多疑惑与思考,或是在实践中遇到了哪些困难,都欢迎你在留言区中提出,我们共同探讨。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《手把手带你搭建秒杀系统》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59
立即订阅
登录 后留言

精选留言(4)

  • 阿福
    项目是用什么语言,Java吗?

    编辑回复: Nignx服务有Lua语言,后端服务都是Java。

    2021-09-22
    2
  • sky
    虽然语言只是一个工具,但还是想问下作者是用GO来实现嘛 是的话就下单了啊

    编辑回复: 抱歉,不是。Nignx服务有Lua语言,后端服务都是Java。

    2021-09-22
    1
  • _xcc
    还想问有没有代码仓库,看到Github地址就满足了

    编辑回复: 安排!

    2021-09-22
  • 道阻且长,行则将至。打卡

    编辑回复: 期待同行!

    2021-09-22
收起评论
4
6
返回
顶部