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

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

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年抖音春节红包,将用户进入的时间打散,减少瞬时请求峰值。
相关推荐
点点滴滴的记录1 天前
开发维护一个项目需要考虑的地方
大数据·架构·系统架构
Wlq04151 天前
系统架构设计师-下午案例题(2022年下半年)
系统架构
哈哈浩丶2 天前
系统架构设计师③:数据块系统
数据库·oracle·系统架构
张瑞东3 天前
系统架构设计师-知识产权与标准化
系统架构·软件工程
HappyAcmen3 天前
第四章:信息系统架构(4.3应用架构-4.6网络架构)
网络·架构·系统架构
HappyAcmen3 天前
第四章:信息系统架构(4.1架构基础-4.2系统架构)
架构·系统架构
J老熊3 天前
SpringBoot 源码解读与自动装配原理结合Actuator讲解
java·spring boot·后端·spring·面试·系统架构
Android技术栈4 天前
鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发
华为·系统架构·harmonyos·鸿蒙·鸿蒙系统·openharmony
h177113472054 天前
相亲交友系统源码中的数据安全策略
大数据·网络·安全·系统架构·vr·交友
lfsun6664 天前
【60天备战2024年11月软考高级系统架构设计师——第29天:微服务架构——微服务的优缺点】
微服务·架构·系统架构