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

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

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年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
学习菌子20 小时前
第9章:【系统架构设计师】软件工程(5.系统运行与评价)
系统架构·软件工程·软考高级·系统架构师·系统维护·系统转换·系统评价
一只码代码的章鱼11 天前
操作系统 第九章 部分
系统架构
还债大湿兄11 天前
《王者荣耀》系统架构深度技术解析
系统架构
池佳齐12 天前
【软考高级系统架构论文】论湖仓一体架构及其应用
架构·系统架构
池佳齐12 天前
【软考高级系统架构论文】论软件设计方法及其应用
系统架构
大数据张老师12 天前
自动化性能回退机制——蓝绿部署与灰度发布
运维·系统架构·自动化·ai架构
孟猛202313 天前
股票账户的管理和交易
系统架构
hwj运维之路13 天前
大数据系统架构实践(一):Zookeeper集群部署
大数据·zookeeper·系统架构
劳埃德福杰14 天前
【系统规划与管理师第二版】1.3 新一代信息技术及发展
系统架构·软件工程·设计规范
范纹杉想快点毕业14 天前
Qt实现文本编辑器光标高亮技术
java·开发语言·c++·算法·系统架构