Sluiceline

配额与限流

PV 与 UV 两层额度、它们返回的状态码,以及计数器的实现。

两层互相独立的保护用于防止真实密钥被刷爆。两者都按单个密钥生效,并在 UTC 跨天时重置。

PV —— 每日请求数

属性取值
维度单个密钥
上限套餐限制你在所有密钥上可分配的 PV 配额总和
预警达到配额的 75% 时触发 pv_warning
拦截达到 100% 时该密钥停止转发
响应403 { "error": "pv quota fused" }

UV —— 每日访客

每个密钥同时限制两件事:

属性取值
不同访客数允许使用该密钥的访客数量上限,避免密钥被到处传阅
单访客调用数任一访客当天可发起的调用次数上限,避免单个调用方吃满额度
访客标识sha256(user-agent + IP),user-agent 与 IP 本身不落库
响应新访客超额:429 { "error": "uv quota exceeded" };单访客超额:429 { "error": "per-visitor quota exceeded" }
告警当天第一个被拦截的新访客触发 uv_exceeded 告警;此后每个新访客照样被拦截,但不再发信

配额为 0 表示该类请求全部阻断:PV 为 0 不转发任何请求,不同访客数为 0 不接受 任何新访客,单访客调用数为 0 则任何调用都不放行。

计数器

属性取值
存储D1,每个密钥每个 UTC 日一行
并发每个上限由单条 SQL 的守卫判定,并发请求不会超额放行
窗口日期是主键的一部分,跨天即新的一行,无需滚动重置
保留按天留存,但限额只统计当天

各套餐的额度上限与升级方式见 定价页。