OpenAI 如何大规模交付低延迟语音 AI (opens in new tab)
📌 One-Sentence Summary OpenAI 通过采用拆分中继与收发器模型重构其 WebRTC 协议栈,解决了 Kubernetes 中的端口耗尽和状态粘性问题,从而实现了大规模低延迟语音 AI 服务。 📝 Summary 这篇来自 OpenAI 的工程博客文章详细介绍了其 WebRTC 基础设施的架构重构,以支持超过 9 亿周活跃用户的低延迟语音 AI。核心挑战在于,WebRTC 是一个有状态协议,每个会话需要一个 UDP 端口,而 Kubernetes 是为无状态、弹性工作负载设计的。团队通过将 WebRTC 协议栈拆分为两个组件解决了这个问题:一个轻量级、无状态的中继,负责数据包路由;一个有状态的收发器,负责终止 WebRTC 协议。中继利用嵌入在 STUN 数据包中的 ICE 用户名片段(ufrag)来确定性路由第一个数据包到正确的收发器,从而消除了对大型、动态 UDP 端口范围的需求。这种设计结合用于地理路由的全局中继层,降低了首跳延迟和抖动。文章详细阐述了 SFU 与收发器架构之间的权衡、使用 Go 语言实现中继时的优化(如 SO_REUSEPORT 和...
Read the original article