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

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

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年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
Tadas-Gao8 小时前
AI是否存在“系统一”与“系统二”?——从认知科学到深度学习架构的跨学科解读
人工智能·架构·系统架构·大模型·llm
用户917439653917 小时前
从单系统架构到微服务架构:软件现代化的转型综述
微服务·架构·系统架构
信创天地1 天前
信创国产化数据库的厂商有哪些?分别用在哪个领域?
数据库·python·网络安全·系统架构·系统安全·运维开发
深圳行云创新2 天前
行云创新 AI+CloudOS:AI + 云原生落地新范式
人工智能·云原生·系统架构
_大峰_2 天前
【论文精读】从单系统架构到微服务架构:软件现代化的转型综述
微服务·架构·系统架构
老司机张师傅3 天前
软考系统架构设计师-案例知识点
系统架构
一条破秋裤3 天前
智慧农业系统架构分析报告(大脑)
系统架构
枫叶丹43 天前
【Qt开发】Qt系统(一)-> 定时器 QTimerEvent 和 QTimer
c语言·开发语言·数据库·c++·qt·系统架构
wuhen_n4 天前
系统架构设计师(三):数据库系统
数据库·系统架构
最后一个bug4 天前
CPU的MMU中有TLB还需要TTW的快速查找~
linux·服务器·系统架构