一杯咖啡的时间,聊聊技术与成长
分布式限流:Redis 加 Lua 的原子计数
计数器集中到 Redis,「读-判断-写」的竞态跟着一起搬了过去——老坑新填,还得 Lua。本篇把固定窗口、令牌桶、滑动窗口三个算法的 Redis 版一次讲透,顺带解决时间源统一与 Redis 故障时的放行策略。
单机限流落地:注解、AOP 与那些工程细节
算法备齐只是第一步,接进业务代码才有战斗力。手写 if 侵入太重,注解加切面才是工程正解:一个 @RateLimit 走天下,SpEL 动态拼 key,限流触发转友好提示,触发率指标上监控——四件套缺一不可。
漏桶与令牌桶:匀速与突发的两种哲学
滑动窗口数的是历史,漏桶与令牌桶管的是节奏。漏桶把流量剁成绝对匀速的水滴,令牌桶匀速发牌、允许攒额度打突发——一个做整形,一个做控制,Nginx 与 Guava 各站一队。
滑动窗口:把突刺磨平
固定窗口的 2 倍临界突刺,病根在「格子是死的」——窗口边界成了流量的免检通道。滑动窗口让统计区间跟着时间走,或者把格子切细统计最近 N 格,突刺被平滑掉,代价是内存与计算的加价。
限流第一课:固定窗口计数器
「下单接口每秒最多放 200 个」,这句话翻译成代码就是固定窗口计数器:按秒切格子,格子里数数,满了就拒。三行核心逻辑撑起第一道闸门,简单到不容易出错——但它有个藏在窗口边界里的坑。
爆单那天:雪崩是怎么发生的
周年庆半价日,10 点整活动上线,一分钟内 503 咖啡馆的系统从响应如飞到全站 502。慢查询打满连接池、线程排队堆积、不相关的服务连坐陪葬、重启再倒下——雪崩从来不是一瞬间的意外,是一条完整的灾难链。
Spring Boot 项目脚手架模板(pig 精简版)
从 pig 裁剪出的轻量脚手架,保留权限、代码生成、日志审计,去掉多余模块。适合个人项目和小团队起步。
收官复盘:一张作战地图串起整个系列
二十篇走完,从 110 块的糊涂账讲到 fencing 的终审判决。症状速查表、三条铁律、四步选型、十项检查——分布式锁与一致性协议的全部家当收进一张作战地图,下次互斥出问题,先翻这张图。
实战事故集锦:七个生产事故清单
永生锁停摆全店业务,一行 leaseTime 拆了看门狗,高频抢锁拖垮注册中心——七个生产事故,现象、根因、解法各一段,条条都有前文伏笔。事故清单是最贵的学费,也是最好用的面试题库与评审清单。