手把手带你搭建秒杀系统
佘志东
前京东交易平台(上海)负责人、资深架构师
12374 人已学习
新⼈⾸单¥59
登录后,你可以任选2讲全文学习
课程目录
已完结/共 18 讲
前期准备:技术选型与环境准备 (2讲)
准确无误:打造不超卖和公平的秒杀系统 (2讲)
雷令风行:性能调优更上一层楼 (3讲)
手把手带你搭建秒杀系统
15
15
1.0x
00:00/00:00
登录|注册

05|勇于担当:秒杀的隔离策略

你好,我是志东,欢迎和我一起从零打造秒杀系统。
通过前面几节课的学习,相信你对秒杀系统已经有了一个初步的认识,也已经能够按照第二课、第三课和第四课的指引一步一步搭建出一个极简的秒杀系统了。
那么,当前的秒杀系统是否已经足够强大去应对我们所说的最大的挑战了呢?当面对巨大的瞬时流量冲击的时候,当前的秒杀系统是否能够像三峡大坝一样扛住洪峰,坚不可摧呢?显然,还有距离。
为了让系统更加的坚固,屹立不倒,我们还需要做哪些工作对秒杀系统进行加固呢?
从这节课开始,我们将深入到秒杀系统的优化细节,从高可用、高性能、高并发等维度出发,一步一步打造一个满足真实业务需求的能够应对百万级用户参与的超大流量冲击的秒杀系统。

为流量而生

这里我想先请你思考一个问题,非常简单。你觉得普通商品和秒杀商品最本质的区别是什么?
显而易见的是流量不同。针对普通商品,销量当然是越多越好,所以商家备货一般都会很充足,这样用户去购买的时间就会分散开,流量也会比较均衡。而秒杀商品,说白了,就是稀缺爆品,特点就是库存少,因此用户会去抢购,刷子也会热情高涨,以致瞬时流量巨大。
另外,普通商品和秒杀商品的数量级也是完全不同的。在头部电商平台,几十亿的商品都是普通商品,只有少数(百个以下)的商品具备秒杀商品的特点。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了构建强大的秒杀系统以及应对瞬时流量冲击的隔离策略。文章首先强调了秒杀商品与普通商品之间的流量巨大差异,指出了瞬时流量对系统的挑战。为了解决这一挑战,文章提出了业务隔离和流量隔离的重要性。通过提报系统进行活动提报,提供参与秒杀的商品信息、活动时间、库存量、限购规则等基本信息,以预估流量、并发数,并结合系统容量情况进行评估。此外,文章还介绍了通过限流、降级、分流等措施来控制瞬时流量,防止对普通商品交易造成冲击。文章还详细介绍了如何通过Dubbo的分组来提供独立的微服务集群,以及负载均衡器的隔离方法。总的来说,本文通过深入讨论秒杀系统的优化细节,为读者提供了构建满足真实业务需求的秒杀系统的指导方针。 文章还介绍了数据隔离的重要性,特别是在秒杀场景下,需要对数据进行专有部署,如Redis缓存的一主多从部署来扛读热点数据。此外,通过商品打标的设计思路,可以正确地路由秒杀流量到专有环境中。最后,文章强调了秒杀系统的特点,需要做好流量隔离,重点关注系统和数据的隔离,以及设计和部署秒杀的商详页和结算页系统的重要性。 总的来说,本文通过深入讨论秒杀系统的优化细节,为读者提供了构建满足真实业务需求的秒杀系统的指导方针。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你搭建秒杀系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 为什么要对商品打标呢?秒杀商品在活动页面不就代表是秒杀商品了吗?点击进去详情页面,就到单独的秒杀详情页,不就和普通商品详情页区别开了吗?

    作者回复: 这种思路不够通用,限制了活动页只能展示秒杀商品,随着营销运营的复杂,活动页不会那么单一,里面可以包含秒杀商品,预售商品,返券返积分商品等等

    2021-10-08
    8
  • kavi
    设计独立的宣传页进行引流?

    作者回复: 首先,对于秒杀的商品来说,的确都会设计独立的活动页进行引流。但是活动页最后还是会先过渡到商详页,用户还是会在商详页等待倒计时,所以商详页的压力不会减少。这时候,为了减少对普通商品商详页的影响,就要考虑设计针对sku的商详页限流,比如商详页如果能支撑100w qps,那我们可以对茅台sku限制20w qps,这样还剩余80w qps是不会受瞬时流量影响的。

    2021-11-04
    2
    1
  • chon
    请教一下,页面染色打标会对代码有侵入性吗?如果需要修改代码,秒杀活动或者有其他新的需求,那么就需要多次更改代码,这样贵引入风险吗?

    作者回复: 商品打标是通用功能,对商品系统而言,提供通用能力,使用方申请接入后进行配置就可以。另一方面,一般新的营销场景或活动接入时,才会用到商品打标,这时一般需要开发代码完成功能

    2021-11-04
    1
  • 无脑熊
    思考题:根据作者提供的思路,同样也是在用户点击购买按钮的时候进行流量隔离,按钮的链接是秒杀系统单独的域名,单独的秒杀域名下映射多个nginx服务器

    作者回复: 嗯,这个思路是对结算页的隔离方法。在商详页点击抢购按钮的时候进行流量隔离,目前很多平台也是这样做的,但是商详页的压力同样也会很大,这个时候需要考虑单sku限流的商详页方案

    2021-10-29
    1
  • _xcc
    系统隔离,第二个代码段,@Autowired位置错了吧
    2021-10-04
    1
    4
  • 纵不朽
    思考题:我来总结一下老师说的,如果确定不用文章上面讲的skutag方式打标在进商品详情页那一刻分流的方案,就会导致商品详情页压力很大,此时就可以单独对这些sku进行限流
    2022-10-07归属地:广东
    2
  • 最摇摆的鱼
    最后一张图的后端微服务画反了, 不过一般都能看出来的。
    2021-11-28
    2
  • oops
    秒杀商品详情 ,活动结算需要独立开发。 秒杀流程依赖购物车,订单,商品能力依赖已有的交易基础服务,通过基础服务扩容,服务分组的方式给不同场景提供基础能力?
    2021-10-20
    1
  • Geek_de63d1
    老师,在秒杀系统中,如果避免同一件商品被多人重复抢去呢?一直没有领会到,麻烦老师答凝下,谢谢
    2023-03-05归属地:北京
  • 林伟烽
    把商祥页静态化,丢到cdn上?
    2021-10-04
    1
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部