把库存计数器放在一个原子的地方,并原子地递减它——用 Redis DECR(或 Lua 脚本)返回剩余值。如果结果 < 0,那个请求就失败了;数据库绝不作为并发关卡。其余一切都是关于如何以低成本甩掉另外 999,000 个请求。
架构
text
1M clients ─▶ CDN/edge (waiting room, drop bots) ─▶ LB
│
Stateless API pods
│
Redis: DECR stock (Lua: check+dec+record)
│hit>=0 │miss<0
▼ ▼
enqueue order ─▶ DB reject "sold out"
