支付宝是如何解决热点库存扣减问题的?

支付宝是如何解决热点库存扣减问题的?

https://mp.weixin.qq.com/s/4XQAdXEVIjXnicauPE-yMw

典型问题: 热点库存扣减

这个是典型的秒杀场景,秒杀系统相对简单的库存扣减问题,比如春节红包雨活动,同一个资金池子有数亿人抢红包,比如阿里巴巴针对红包活动150万QPS的峰值压力,应该如何设计库存扣减方案呢?

常规方案

采用分桶设计,将库存均匀分发到 N 个 Redis 分桶中。通过 Incr 无锁的方式,高效扣减库存。

  1. 假设 key 失效了怎么办?
  2. 假设 Incr 方法失效了怎么办,

上面两种情况都会满足 $num < $max

复制代码
$num = $redis->incr($key);
if ($num > 0 && $num < $max) { 
 //入抢购成功队列,异步去执行抢购成功逻辑
} else {
 //不好意思呢,已经被抢完了
}

缺点:

每个桶库存消耗不均,会导致实际还有库存,但是有部分用户无法扣减库存,引发客诉。

优化后的方案

  • 小量多次分派库存,从而缓解消耗不均问题。
  • 21年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
卋罖7504 小时前
从采购到生产出库:拆解 ERP+MES+WMS+EQMS 全链路业务流程
系统架构
路人蛃5 小时前
【深入理解计算机系统】第二章第一节(信息存储)笔记
服务器·网络·笔记·计算机网络·系统架构
@insist1237 小时前
系统架构设计师-可靠性与可用性核心概念、指标及设计方法
架构·系统架构·软考·系统架构设计师·软件水平考试
寺中人7 小时前
Linux系统超详细解析与零基础实战使用教程
linux·服务器·系统架构·linux命令·零基础教程
@insist1238 小时前
系统架构设计师-系统可靠性模型计算全解析
架构·系统架构·软考·系统架构设计师·软件水平考试
跨境数据猎手1 天前
复刻Cssbuy跨境淘宝代购集运系统搭建方案
爬虫·架构·系统架构
@insist1231 天前
系统架构设计师-特定领域软件架构与软件产品线
架构·系统架构·软考·系统架构设计师·软件水平考试
lqqjuly1 天前
多智能体系统架构(Multi-Agent System Architecture)
系统架构·agent
@insist1231 天前
系统架构设计师-构件化开发与中间件技术:架构设计落地的核心路径
中间件·系统架构·软考·系统架构设计师·软件水平考试
biwenyunnet1 天前
【99做小程序只认餐宝盈】连锁餐饮小程序怎么做:从系统架构、技术选型到表结构与接口设计的完整实践
小程序·系统架构