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

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

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年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
数据与后端架构提升之路3 小时前
系统架构设计师常见高频考点总结之软件架构设计
系统架构
郑州光合科技余经理7 小时前
同城O2O系统架构解析:中台化如何赋能本地生活服务
java·开发语言·javascript·人工智能·系统架构·php·生活
想用offer打牌8 小时前
一站式了解全局分布式生成ID方案
分布式·后端·面试·架构·系统架构·开源
BullSmall19 小时前
Reactor 多线程模型
系统架构
哈库纳玛塔塔1 天前
方言系统架构演进:从分离到统一
系统架构
套码汉子1 天前
软件架构的本质:以简单之道应对复杂系统
架构·系统架构
毕设源码-邱学长1 天前
【开题答辩全过程】以 基于Android的健康码系统架构为例,包含答辩的问题和答案
android·系统架构
Ulyanov1 天前
Python射击游戏开发实战:从系统架构到高级编程技巧
开发语言·前端·python·系统架构·tkinter·gui开发
xuyuan19981 天前
超越Selenium:自动化测试框架Cypress在现代前端测试中的卓越实践(windows版本)三
前端·windows·测试工具·系统架构·cypress
七牛云行业应用3 天前
重构实录:我删了 5 家大模型 SDK,只留了 OpenAI 标准库
python·系统架构·大模型·aigc·deepseek