TURN 服务

TURN 区域容量规划:按带宽、端口和故障余量三条线算

从中转比例、双向流量、峰值并发、端口范围、网卡 PPS 和区域故障转移估算节点数量,并建立扩容触发线。

把它做成生产功能之前,需要先拆开协议事实、产品承诺和运行成本,三者混在一起很容易得到错误结论。 月流量额度只说明成本上限,不说明瞬时容量。TURN 可能先撞出口 Mbps、端口、CPU 加密、PPS 或 conntrack 中任一瓶颈。

TURN 是有成本的共享中继,不只是一个 ICE URL。节点需要短期授权、allocation 并发、字节核算、区域容量和滥用处置,同时保留 UDP、TCP 与 TLS 穿透能力。

落地方案的关键部件

先把下面几项写成可评审的规则,而不是散落在回调和界面判断里。规则越清楚,后续扩容、兼容和排错越少靠猜。

  • 按 p95 同时 allocation 与 Mbps 计算正常需求,至少预留单节点故障和目标跨区接管比例;容量表同时列端口利用和网络账单预测。
  • 所有输入都设置大小、次数和时间预算,并在超限时返回可操作的稳定错误码。
  • 上线参数必须有保守默认值、服务端上限和灰度开关,不能把浏览器传来的数字直接当作资源预算。

“TURN 区域容量规划:按带宽、端口和故障余量三条线算”的交付标准是正常路径可用、异常路径收敛、资源有界,并且用户能理解系统为何采用当前状态。 这样得到的不是演示代码,而是能解释、能降级、能回滚的生产能力。

别让错误假设进入生产

边界条件会把隐藏假设变成真实事故。弱网、刷新、并发和容量上限必须组合测试,因为单独出现时它们往往都能被重试掩盖。

  • 用月均 2 TB 除整月秒数会严重低估晚间峰值;只看 CPU 低就认为有余量可能忽略网卡或端口已满。
  • 失败被压成一个布尔值,调用方无法区分可重试、需用户介入与永久拒绝,最终形成无限循环。
  • 没有背压或配额时,慢消费者会把内存、队列长度与尾延迟一起推高,最后拖累无关用户。

发布闸门应该检查什么

测试不能以“最后成功了”结束。还要测量经历了多少次副作用、等待多久、是否泄露内容,以及失败后再次执行能否从干净基线开始。

  1. 回放真实峰值曲线并下线最大节点和整个邻区,验证剩余区域在告警阈值内承载、拒绝有序且成本预测准确。
  2. 用乱序、重复和延迟消息驱动状态机,确认旧版本被丢弃且显式停止不会被自动恢复覆盖。
  3. 用故障注入验证告警先于用户投诉触发,并确认值班人员能从有限证据定位到具体阶段。

可以上线的标准是:用户知道当前发生了什么,系统在异常后能停止或恢复,资源不会无界增长,运维也能从最小必要证据定位阶段。

把方法变成一次真实连接

打开 uCopy,让两台设备在浏览器里安全连接并开始传输。

开始免费使用