# 《Seckill秒杀系统》第67章:预约系统需求梳理与架构设计

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★★☆☆
  • 本章重点:重点理解并掌握预约系统在整个秒杀场景过程中的应用与架构设计,重点梳理预约系统的需求,并在此基础上设计预约系统的整体架构方案,并能够做到举一反三掌握预约系统的应用场景,结合自身实际项目将预约系统的需求场景和落地方案灵活运用到自身实际项目中。

大家好,我是冰河~~

其实在秒杀场景中,假设一件秒杀商品的库存量是1万件,此时,10万个用户进来抢购和100万个用户进来抢购,对于用户的体验效果来说是一样的。不管是10万个用户进来抢购还是100万个用户进来抢购,最终都只能有10万个用户真正抢购到商品。

# 一、前言

不知道大家有没有遇到过这样一个场景:在秒杀活动中抢购商品,有些商品需要提前预约,有些商品又不需要提前预约。

在某些场景下抢购某件秒杀商品时,需要提前预约此商品,并且这款商品的预约人数还有上限,超过预约人数上限的商品,其他用户再预约时,会提示预约人数已满。如果成功预约了某件秒杀商品时,当秒杀活动开始前,会通过短信或者消息通知的方式通知用户参与秒杀,秒杀活动开始后,用户就可以抢购预约过的商品了。如果用户未预约商品,或者预约失败,秒杀活动开始前,就不会通知用户参与秒杀,秒杀活动开始后,用户也不能抢购对应的商品。

那这种预约商品的逻辑站在技术的角度又该如何实现呢?

# 二、本章诉求

在秒杀场景中,用户预约某件秒杀商品时,会有单独的预约系统来完成对应的业务逻辑。本章,就站在技术的角度来梳理下预约系统的需求,并从落地实践角度设计出预约系统的整体架构设计。

# 三、预约系统需求

在前面的文章中,也已经提到过,站在技术的角度来说,其实,过量的用户参与秒杀活动带来的价值是有所下降的。比如:一件秒杀商品的库存量是1万件,此时,10万个用户进来抢购和100万个用户进来抢购,对于用户的体验效果来说是一样的。不管是10万个用户进来抢购还是100万个用户进来抢购,最终都只能有10万个用户真正抢购到商品。

但是对于秒杀系统来说,承接10万个用户抢购商品和承接100万个用户抢购商品,所付出的成本和经济效益是不一样的,承接100万个用户抢购商品付出的成本要远远高于承接10万个用户所带来的成本。

# 3.1 秒杀四个核心时间段

如果各位小伙伴们关注过电商平台618或双11大促秒杀活动,就应该感受过预约加秒杀在大促活动中的实际应用。如果某件商品需要预约才能抢购时,往往会将整个秒杀活动分为四个阶段,如图67-1所示。


1.预约时间段

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码