月度归档:2026年9月 (54)
热点库存:一万个人抢同一行
Redis 单线程扛十万 QPS,但一个热 Key 的极限就在那里——库存分片把一个热点拆成 N 个桶,本地缓存让售罄后的请求不再打 Redis,热点探测让分桶在开抢前自动就位。
Redis 预扣库存:Lua 原子扣减的完整实现
数据库的热点行扛不住,Redis 的内存原子操作扛得住——把扣库存从行锁竞争改成 Lua 脚本一步完成。脚本怎么写、库存怎么预热、Redis 挂了怎么办,这篇给完整实现。
库存模型:扣库存的三种时机
超卖的代价是赔付与舆情,少卖的代价是少赚——代价不对称决定了宁可少卖不能超卖。下单减、支付减、预扣加超时回补,三种时机各有各的坑,秒杀的答案是预扣。
风控:黄牛与脚本的对线
一秒三千单的"用户",设备指纹高度雷同,点击轨迹整齐划一——真人占比不到一成。设备、行为、画像、关系四类信号拼出识别线,决策要前置拦截与后置清算结合,误杀的代价永远比漏放贵。
网关与接入层:限流、防刷与黑名单
端上拦得住君子拦不住脚本,系统的第一道闸门在网关:按容量放行的入口限流、多维交叉的频次防刷、动态下发的黑白名单,再把超容量的流量引去排队页。这里决定整个系统能接多少。
前端削峰:页面层就该拦下八成流量
最便宜的过滤层在浏览器里:静态化让页面资源不打后端,防抖置灰拦下连点,答题验证把洪峰拉成缓坡,动态 URL 让脚本提前无处囤弹药。这一层能拦下八成无效流量。
流量漏斗:把百万请求筛成千级订单
100 万请求抢 50 件商品,99.995% 注定失败——秒杀架构的核心任务不是满足所有请求,而是让它们体面地、便宜地失败。五层漏斗逐层收窄,越早过滤越便宜,这是整个系列的骨架。
一场秒杀崩掉的三层系统:为什么秒杀是设计天花板
晚上八点开抢,三秒后数据库 CPU 100%,下单接口全线超时,50 台手机超卖了 32 台。秒杀的三重属性——瞬时洪峰、稀缺热点、作弊对抗——决定了它不是把下单接口调调参数就能扛的。这一系列从崩掉的这一晚讲起。
收官:微服务治理全景图
注册、配置、网关、调用、观测、容错、发布——七个板块互相咬合成一张治理全景图。治理的本质是控制变量:给自由度配上闸门。演进路线、能力清单与回望,本篇收官。