UniGateway 提供了一个高吞吐的内建网关并发流控与缓冲排队机制。该设计旨在抵御瞬时流量洪峰攻击,并在高负载状态下仍然为多租户提供有序、公平的体验。本机制由 `src/middleware.rs` 驱动并生效于网关层的鉴权阶段 (GatewayAuth)。
在直接与各大模型供应商(Provider)通信时,如果完全不加限制,很容易将并发压力直接透传给 Provider 侧,带来极其生硬的 `HTTP 429 Too Many Requests` 以及由此引发的下游报错风暴。
UniGateway 摒弃了僵硬的“达到限流立刻拒绝”(Fail-Fast)策略。当突发请求超过了 API Key 设置的 `concurrency_limit` 时,请求并不会立即被抛弃,而是会**排队挂起等待(Sleep & Retry)**一段时间。只要前面正在执行的连接释放了限额,挂起的请求就能够马上平滑递补。
该机制基于 Rust 和 Tokio 的原子原语构建,通过以下方式实现低损耗的多维流控:
1. * * *
2. * *
3. * *
为了保护网关内存不被某个失控脚本消耗殆尽,排队机制设置了如下两道硬性红线:
1.
2.