知识卡片

上游拦截流量

专业/工作 · 490.d.1.a

内容

秒杀库存有限,大量请求注定失败,应尽量在上游拦截无效流量,保护数据库这个最稀缺资源。越靠后拦截,浪费的连接、线程和锁竞争越多。拦截之后,剩余的有效读请求还要靠 [[缓存承接读压]] 分担。

参考来源

- 位置:《Go语言高级开发与实战》第6章《Go语言秒杀系统实战》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_054.html) - 结论依据:原文围绕“秒杀库存有限,大量请求注定失败,应尽量在上游拦截无效流量,保护数据库这个最稀缺资源”展开机制、顺序或组件关系说明;摘录中的关键步骤和术语支撑本卡片正文及结构图。 - 原始内容:何扣库存 通过上面的分析可知,预扣库存是十分合理的方案。进一步分析扣库存的细节,发现这里还有一些优化的空间。首先,库存存在哪里?怎样保证在高并发下,不仅正确地扣库存,还能快速地响应用户请求?在单机低并发情况下,实现扣库存通常采用图6-13所示的方式。 ● 图6-13 为了保证扣库存和生成订单的原子性,需要采用事务处理。然后取库存进行判断、减库存,最后提交事务…