面试被问“接口被狂刷怎么办”:答好纵深防御+成本对抗就够了
场景:领券活动刚上线,发现某接口被脚本狂刷。本文按“先止损→再分层→后复盘”的思路,给出前端防抖、网关限流、业务分布式限流与幂等、风控验证码/行为评分、数据库唯一索引的五层方案,并附 Redis+Lua、Redisson、Sentinel、AOP 幂等、签名防重放核心代码。1.
玩棕色尘埃2遇到丢包跳ping 我是这样解决的
同样玩棕色尘埃2,有人公会战打得行云流水,有人连技能释放都卡顿——差距在哪?不是手机性能,不是角色练度,而是网络环境。棕色尘埃2虽然是回合制RPG,但公会战争(Guild War)和世界Boss等实时协作玩法对网络稳定性的要求比想象中高得多。
从领料到销售成本:一个 A、B 双产品工厂,走完成本核算系统设计的全流程
月底的产品成本不是在一张表里填出来的:采购决定材料价格,仓库记录材料去向,车间记录产量与工时,薪酬、折旧和水电形成加工费用。作者用一家同时生产 A、B 两种产品的工厂,把从业务发生到成本算出来的链路走了一遍。月底的产品成本,不是成本会计在一张表里填出来的。
网络一抖、浏览器一重试,订单就重复:后端防重别再偷懒
用户下单偶尔出两笔订单,前端按钮都置灰了,为啥还重复?因为:前端防重是礼仪,后端防重才是底线。一、一个真实线上问题同事急匆匆跑过来:用户下单,偶尔生成两笔一模一样的订单,日志里时间只差 3ms。
支付成功了,积分却没到账
上周四凌晨两点,我盯着监控大盘上那条诡异的曲线——支付成功率 99.7%,积分发放成功率 87.3%。差的那 12.4%,全掉在了一个你绝对想不到的地方。
Spring Boot 接口总被重复提交?4 种幂等方案手把手落地
"用户连点三下下单按钮,结果生成了 3 个订单、扣了 3 次钱。"这不是段子,而是几乎每个后端开发者都会踩的坑。网络抖动重试、用户狂点提交、MQ 消息重复投递、定时任务重跑……任何一个环节都可能让同一个请求执行多次。幂等性就是为解决这类问题而生的,它也是中高级后端面试的高频考点。
你写的接口被重复提交了吗?
线上有个订单接口,用户点一次"提交"结果生成了两笔订单。排查下来不是代码 bug,而是用户网络卡顿后疯狂连点,请求在 200 毫秒内打了三次。这类问题光靠前端防抖根本兜不住,后端必须有兜底手段。今天就聊聊用自定义注解 + AOP 实现接口幂等,让重复请求自动被拦截。
接口改了 4 版,线上同时跑了 7 个版本
v1 接口改了个字段,App 端炸了;临时加了 v1.5,前端不知道调哪个。版本号越加越多,代码越来越脏。