你设计的秒杀系统,能通过 “双十一” 大考吗?

10月20日一年一度的双十一拉开帷幕,当日下午两点半,李佳琦准时开播,连续直播时长共计12个小时26分,共上架439件商品,直播间累计交易额高达115亿元,预估销量达3771万。这个交易额近乎数百个小规模公司年营收,可以看到近年来直播电商异常火爆,小到种草博主大到流量明星,从李佳琦、薇娅到罗永浩,众多一夜暴富的都市传说指引海量玩家涌入,能想象到的所有变现量级高与不高的流量都一拥而上。

而作为电商商业的技术从业者,高的销量意味着高的保障,对后台工程师的能力也有着更高的要求。数百万用户冲进直播间,抢购商品,流量激增,如何保证系统高可用?秒杀系统究竟应该如何设计?所面临的核心挑战又有哪些?

技术难点

秒杀系统具有:限时、限量,定时定点,手动上架,瞬时流量洪峰,持续时间短等业务特点,其技术特点有:瞬时并发流量高,读多写少,流程简单,基于上述特点,秒杀系统在设计时一般需要遵循以下原则:

  1. 异步解耦
  2. 限流,将请求尽量拦截在上游
  3. 充分利用缓存

当然除却应遵循的原则外,秒杀系统在设计时以下问题也不得不考虑:

1、超卖

当付款的订单量大于当前商品库存量时,就会存在超卖问题,例如商品库存只有300个,但秒杀售卖时,卖出350个,而超卖问题首先会导致商家无货可发,容易引起商家和用户的投诉,并且有可能产生赔付,如果是优惠券类商品超卖,将直接产生资产损耗,故设计秒杀系统时超卖问题是首要解决对象。

2、高并发

基于上述秒杀系统的特点:时间短、瞬时流量洪峰,秒杀往往仅持续几分钟,在高并发场景下,用户的请求可以简单概括为:获取缓存—查询数据—重建缓存—返回结果,如果命中缓存直接返回结果,但短时间内大量的请求并发进来,很有可能会造成缓存击穿或者失效,如何解决这些问题也是不得不考虑的。

解决方案

以平常的交易平台架构设计为例,我们需要关注交易服务、场景、基础能力的搭建。我们将秒杀架构进行划分,大体分为四层分别是:用户层、负载均衡层、应用层和持久层

图片

超卖解决方案

解决超卖问题的基本思路是:

  1. 直接依赖DB事务机制,做强一致和超卖校验;
  2. 保证足够的性能;(保证DB的服务能力尽量提供给写场景)
  3. 合理处理异常;
  4. 实时处理超卖;超时关单+增加扣库存超时时间;实时监控+实时干预
  5. 尽量不要使用异步扣库存

解决方案:同步,下单减库存,代码缩影:

扣库存:

UPDATE t_seckill_goods SET count = count -1, version = version +1 WHERE id = ? AND count > 0 AND version = ?

回滚库存:

UPDATE t_seckill_goods SET count  = count +1, version = version +1 WHERE id = ? version = ?

图片

当然解决上述问题不仅是下单减库存这一同步方法,异步也可实现。回归到秒杀系统自身,技术层仅解决了功能性的问题,而对于直播间秒杀来讲,其本质依旧在于营销,而营销的本质在于吸引不是强迫~

叮咚!福利时间

上述秒杀系统解决方法仅是腾讯课堂海量优质IT互联网课程中的冰山一角,还有涵盖编程语言、前端开发、软件研发(测试)、认证考试、云计算大数据、网络与运维、游戏开发、硬件研发等领域的更多优质课程和内容。除此之外,1024程序员节,腾讯课堂也推出了专属的活动哦,可谓仪式感拉满!

作为广大程序员的节日,1024早已不是个日历表上单纯的一天,它承载了程序员独特的惆怅和浪漫。徜徉在0和1的世界里,这份浪漫却被每一个忙碌的日子所掩盖,但即使是这样,在1024这个特殊的日子里,我们该有所不同,不是嘛?

别人的520情人节里有玫瑰花?但在程序员的世界里(16进制里522等于十进制的1314),会在522的时候,送上1314个祝福。

别人过春节贴对联?但在程序员的世界里,他们会用一段代码把“Hello World”作为寄语写给新的一年的自己...

所以,#1024程序员节#,腾讯课堂又会带来什么,将这个专属节日仪式感拉满呢?

摇霸符加BUFF,收获自己节日的祝福和愿景!

【活动奖品】

1、五符集卡:集齐五款霸符(「消灭BUG鸭」符、「提效摸鱼」符、「永不宕鸡」符、「成为大牛」符、「找到对象」符)的小伙伴,可获得限量版霸符T恤一件,数量有限,先到先得。

图片

图片

2、彩蛋奖:随机摇到彩蛋金霸符的幸运观众,将获得腾讯课堂首次发行的霸符数字藏品,每款霸符数字藏品限量发行500份,共2500份。

图片

【规则说明】

1、用户登录H5,摇一摇互动,摇出不同霸符,集齐五款即可兑换基础奖品;摇出金霸符即可获得NFT数字藏品。

2、每位用户拥有5次“摇霸符”机会,次数用尽后,可通过参与趣味问答解锁额外机会,最多可摇50次。

3、用户进入社区站内,锁定活动链接,定时霸符雨,点击赢好礼(好礼包括现金红包、课程优惠、NFT霸符,3C尖货、数码实物奖品、专业知识,现金红包、定制T恤等)

图片

还等什么?现在就来参与,更多惊喜等你解锁哦!

图片

扫描二维码

Get你的1024专属「霸符」吧~

你设计的秒杀系统,能通过 “双十一” 大考吗?_第1张图片

点击【此处】Get你的1024专属「霸符」

你可能感兴趣的:(前端)