十万并发,真正打到数据库的有多少
每一层拦掉一个数量级。注意最后一层——落库写请求数由库存量决定,与并发量无关。
DB 写请求
—
—
整体拦截率
—
未到达 DB 的比例
超卖数
0
由 DB 约束保证
各层拦截比例为典型量级估算,非实测。核心结论与具体比例无关:无论前面并发多大,最终落库的写请求数被库存量封顶。前四层都只是削峰,「绝不超卖」这个保证由最后一层的数据库约束提供。
为什么「先查再扣」一定会超卖
库存只剩 1,两个线程同时进来。点播放,看两种写法的差别。
最终库存
1
售出
0