-
数据库死锁完全指南:从一次"大促下单成片失败、库存还被扣两次"看懂死锁的根治
2022 年我做一个电商的下单系统下单时要在一个事务里挨个扣减购物车里每个商品的库存。第一版我做得很省事拿到购物车的商品列表就按列表里的顺序一个个 UPDATE 过去。本地我下了几十单测了测真不错库存扣得准订单也对得上。我心里很踏实事务嘛把要改的几行包进一个 BEGIN COMMIT 数据库自己会保证一致。可等这个系统真正上线扛起大促的并发下单一串问题冒了出来。第一种最先把我打懵后台日志里时不时蹦…- 0
- 0
-
大模型 API 并发完全指南:从一次"开 100 个线程狂调 API、结果全被 429 打回"看懂限流应对
2024 年我做一个批量处理功能要给几万条数据每一条都调一次大模型 API 去做分析。第一版我做得很省事既然要快那就开一个线程池放 100 个 worker 一起往外发请求。本地我拿几十条数据测了测真快几十条几秒钟就跑完了。我心里很踏实调大模型 API 要快嘛就是多开几个线程一起猛发发得越猛越快。可等它真正上线去跑那几万条真实数据一串问题冒了出来。第一种最先把我打懵跑了没几分钟日志里开始刷屏 42…- 0
- 0
-
数据库事务隔离级别完全指南:从一次"两个人同时下单、库存被卖成了负数"看懂脏读幻读
2023 年我做一个电商的库存扣减功能。逻辑看着特别简单用户下单我就查一下库存够不够够就扣减生成订单。第一版我做得很省事查库存判断够不够扣减三步我把它们包进了一个数据库事务里。本地一测毫无问题下单扣库存生成订单一气呵成。我心里很踏实把这几步包进一个事务里它就是原子的就安全了。可等它真正上线撞上大促的高并发一串问题冒了出来。第一种最离谱一个只有 1 件库存的商品居然卖出去了 3 单库存字段变成了负二…- 0
- 0
-
分布式锁完全指南:从一次"加了锁还超卖、库存被扣成负数"看懂分布式锁
2022 年我做一个秒杀活动的库存扣减接口。逻辑很简单:用户下单先查库存够不够,够就扣减一个。第一版在单机上跑,为了防止两个请求同时扣减同一个库存导致超卖,我加了个进程内的锁 threading.Lock。本地压测单机上线都没问题。后来活动流量涨了,运维把服务部署成了三个实例挂在负载均衡后面。某次活动结束我对账,发现一件吓人的事:库存明明只有 100 件,却卖出去了 130 单,超卖了 30 件。…- 0
- 0
并发控制
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!




