INCR login:ip:10.0.0.4 / login:user:alice,各 5/60 秒;超限 429 + Retry-After登录接口同时按 IP 和账号计数:同 IP 多账号猛试撞库被 IP 桶挡,单账号多 IP 撞库被账号桶挡;429 附 Retry-After 与「请稍后再试」文案,客户端指数退避 + 幂等键重试、不忙循环;健康检查走白名单。
数据与服务 · 账号与安全
限流给一个 key 在时间窗口内设请求上限,超限回 429 + Retry-After,让客户端退避等而不是猛重试;登录按 IP + 账号双键限流是防撞库的标配。
限流给一个 key 在时间窗口内设请求上限,超限回 429 + Retry-After。在这里连续点发送,看计数物件填满、第 6 次撞 429、快进窗口后恢复;切 key 维度看 per-IP 与 per-account 的区别。
以 POST /login 为例,窗口上限 5 次 / 60 秒。点主操作「发送 POST /login」5 次填满计数;第 6 次起每点必回 429。切 key 维度与调用方,看计数物件按当前 key 重算。
ip=10.0.0.40 / 5原因:当前 key ip=10.0.0.4 还没消费请求。下一步:点「发送 POST /login」开始填窗口,连续到第 6 次会回 429。对照:换 key 维度或调用方,计数器会按新 key 重算——这就是 per-key 计数。
提示:Tab 在各按钮间移动,Enter / 空格触发。重点试三组对照:连点 5 次填满 → 第 6 次看 429;在 429 态再点 CTA = 重试被拒,点「快进」窗口归零;按 IP 模式把 Alice 填满后切 Bob,看两人共用同一桶;按账号模式切 Bob,是独立的 0/5。
面板把每次请求的结果演给你看了,这里命名清楚,并补无法直接操作的部分。
429 Too Many Requests 告诉客户端「你发太快了」,Retry-After 告诉它什么时候能再试;面板第 6 次起的红色请求行就是这个响应。Retry-After 退避,并配合幂等键重试,避免重试风暴。INCR + EXPIRE 做窗口计数,主库只管业务数据。从「这个接口会不会被刷爆或拖垮」出发,而不是所有接口都套同一个限流。
一次能跑通的窗口限流,只走这几步。
ip=10.0.0.4 或 user=alice),通常组合 route + method + key。INCR key 取当前窗口计数;第一次 INCR 时 EXPIRE key 60 秒 设窗口 TTL——这就是一个固定窗口。429,加 Retry-After: <剩余秒> 和可读 message,不让客户端忙循环。Retry-After 做指数退避重试;重试请求带幂等键,确保就算多次送达也只生效一次。Retry-After 写进指标;仪表盘区分真实滥用、客户端重试风暴和误伤。只改一处关键选择,结果差很多。这是限流设计里最该记住的一组对照。
INCR login:ip:10.0.0.4 / login:user:alice,各 5/60 秒;超限 429 + Retry-After登录接口同时按 IP 和账号计数:同 IP 多账号猛试撞库被 IP 桶挡,单账号多 IP 撞库被账号桶挡;429 附 Retry-After 与「请稍后再试」文案,客户端指数退避 + 幂等键重试、不忙循环;健康检查走白名单。
全站每分钟 1000 次,超限 429 无 Retry-After;前端 setInterval 每 200ms 重试登录全站一个桶意味着任何一个流行接口刷爆,所有接口(含登录)一起 429;没有 Retry-After,客户端只能盲猜、往往立即重试,形成重试风暴放大流量;登录前端每 200ms 重试更直接把限流打成 DoS。
登录接口按 IP 限流 5 次/分钟,一个办公网(同一出口 IP)里 50 个人正常登录,最可能出现什么?
术语的技术定义和行为以这些一手或权威资料为准。
和本知识点经常一起出现的概念。