架构
透明的转发路径
请求路径分为三段,只有中间一段由我们处理。
client
客户端
你的应用,任意 SDK
gateway
rustSolidway
路由、计量、健康
- 选择目标
- 记录用量
- 判定健康
- 保留字节
主目标
上游 5xxprovider-a/gpt-6-astra
回退目标
返回响应provider-b/gpt-6-astra
当主目标失败时,请求由回退链中的下一个目标承接。
- 01
不做 schema 转换
网关不会把某家的协议方言转换成另一家。SDK 发出什么,上游就收到什么;这意味着模型发布的新参数当天即可使用,不必等待网关发版。
- 02
流式仍是流式
Server-Sent Events 帧按到达顺序转发,分块边界保持不变,因此客户端的分帧解析与增量渲染行为,在有无网关时保持一致。
- 03
路由决策可查
某个请求由哪个目标服务、为何触发回退、每次尝试耗时多久,都会记录在该请求对应的路由日志中。
Rust
用 Rust 编写
单个静态链接的二进制。没有垃圾回收器,没有解释器,宿主机上也不需要安装运行时依赖。
没有垃圾回收
内存按确定时机释放,延迟分布的尾部不受回收停顿影响。
只需分发一个文件
构建产物是 x86-64 或 arm64 的单个二进制。没有运行时包、没有 sidecar,也不需要维护版本矩阵。
负载下内存占用平稳
吞吐随可用核心数变化,稳态内存由连接池配置决定,而不是由堆大小决定。
编译期内存安全
在安全 Rust 中,借用检查会在构建之前拦截缓冲区溢出、释放后使用这一类缺陷。