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

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

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年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
lypzcgf1 天前
Coze源码分析-资源库-编辑数据库-后端源码-安全与错误处理
数据库·安全·系统架构·coze·coze源码分析·ai应用平台·agent平台
武子康1 天前
AI-调查研究-96-具身智能 机器人场景测试全攻略:从极端环境到实时仿真
人工智能·深度学习·机器学习·ai·架构·系统架构·具身智能
2501_921290442 天前
嵌入式第六十六天(I2C子系统架构)
系统架构
lypzcgf2 天前
Coze源码分析-资源库-编辑知识库-后端源码-流程/技术/总结
系统架构·知识库·coze·coze源码分析·智能体平台·ai应用平台·agent平台
武子康3 天前
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)
java·数据库·mysql·spring·性能优化·系统架构·事务
虫师c3 天前
分布式系统设计模式:从理论到实践
微服务·设计模式·系统架构·高可用·分布式系统
timmy-uav3 天前
PX4-Autopilot代码解析(2)-系统架构
系统架构·自动驾驶·无人机·飞控·px4
Jolie_Liang3 天前
证券业智能化投研与分布式交易系统架构:全球发展现状、技术创新与未来趋势研究
分布式·系统架构
夜听莺儿鸣3 天前
901-009_高级系统架构设计师-考试范围-软件可靠性技术
系统架构·软考
lypzcgf4 天前
Coze源码分析-资源库-编辑知识库-后端源码-基础设施/存储层
系统架构·go·知识库·coze·coze源码分析·智能体平台·ai应用平台