如何设计一个稳定的 API 限流与计费系统:先统一配额口径,再拆分拦截与记账
稳定性的关键不是选哪个限流算法,而是先统一“一次调用算几次”的口径,再把拦截链路与记账链路拆开:限流侧明确键、共享存储与存储故障时的失败策略;计费侧用幂等键去重、异步记账并保留原始事件以便对账;两者通过“预扣—执行—结算”衔接,并用…
「令牌桶」标签下共 17 篇技术文章,包括《如何设计一个稳定的 API 限流与计费系统:先统一配额口径,》、《如何设计一个稳定的 API 限流与计费系统:把计量、限额与结》、《API 限流与计费的稳定性设计:失败路径、事件账本与窗口边界》。按发布时间倒序排列,内容持续更新。
稳定性的关键不是选哪个限流算法,而是先统一“一次调用算几次”的口径,再把拦截链路与记账链路拆开:限流侧明确键、共享存储与存储故障时的失败策略;计费侧用幂等键去重、异步记账并保留原始事件以便对账;两者通过“预扣—执行—结算”衔接,并用…
限流的稳定性和计费的准确性是两件事,应使用不同的数据结构与失败策略。文章建议把计量、限额、计费单位三个概念分开,计数放到共享存储并接受近似误差,计费走预扣—结算—对账三段,同时用幂等键、悬挂预扣清理和显式的降级策略处理失败模式。
限流与计费共用一个准入判断,但失败代价不同:限流判断出错最多是多放过几个请求,计费记录出错则可能丢账或重复计费。因此两条路径要分开设计,各自声明降级行为。限流上建议分层限流并显式声明 fail-open 或 fail-closed,…
限流与计费应共享同一份不可变的用量事实,但作为不同消费者分别处理:限流允许近似并可降级,计费要求可审计、可对账。文章给出用量事件的字段设计、预扣—提交—对账流程,以及重试、时钟、集中计数器故障等边界条件。
限流与计费常被分别实现,导致对账不一致。稳定的做法是让两者共用请求标识、计量维度与时间基准:限流做事前决策,计费做事后结算。限流建议本地挡洪峰、中心管配额,并预先写死中心存储故障时的失败开放或关闭策略;计费采用预扣、提交、释放三段式…
Cloudflare 2026 年第三季度报告显示,其网络当季缓解 1820 万次网络层 DDoS 攻击,较 2025 年同期增长 208%,其中 96% 在 10 分钟内结束、98% 带宽低于 1 Gbps。对 API 平台来说,…
稳定限流计费的关键是把准入和记账拆成两层:Redis 只跑令牌桶判定,扣费写幂等事件表异步结算,两层用 request_id 串联,任一侧抖动都不拖垮另一侧。
把同一 API Key 的限流计数留在本机、跨节点合并压到 100ms 一次批量对账,p99 从 1.6ms 降到 0.03ms,代价是千分之二左右的配额误差。GPU 拓扑感知调度的放置、切片、反碎片三件事,可以直接搬到 API 限…
限流可以近似、计费必须精确:用令牌桶加隔离舱做限流,用不可变事件加幂等键做计费,两边靠分钟级对账把数字对齐,并补齐限流器故障时的降级策略。
共 17 篇文章,第 1 / 2 页