延迟的物理基础:光速限制与地理距离

聊跨云数据复制,第一个绕不开的话题就是——光速。

你可能觉得,光速不是每秒30万公里吗?那应该很快啊。没错,在真空中是这样。但在光纤里,光走得没那么快。我刚开始做跨区域数据同步时,也天真地以为延迟主要来自网络设备。后来被现实狠狠教育了一回。

光在光纤中的真实速度

光纤的核心是石英玻璃,光在其中传播时,折射率大约在1.44到1.48之间。这意味着什么?

  • 真空光速:299,792,458 m/s(约30万公里/秒)
  • 光纤中光速:约204,000,000 m/s(约20万公里/秒)

说白了,光在光纤里只能达到真空速度的约68%。这个数字,我建议你记在心里。因为所有跨区域延迟估算,都得拿它做基准。

核心公式:单向延迟 ≈ 地理距离(公里) ÷ 200,000(公里/秒)

注意,这只是理论下限。实际延迟还要加上设备处理、信号中继、协议开销等。

地理距离如何决定延迟

你想想看,北京到法兰克福的直线距离大约是7,800公里。按光纤光速算:

7,800 km ÷ 200,000 km/s = 0.039秒 = 39毫秒

嗯,39毫秒。听起来不多对吧?但这是单程。数据复制通常涉及往返确认,实际延迟要翻倍。再加上路由绕路、设备跳数,轻松破百毫秒。

我在项目中遇到过,某客户把主库放在美西(弗吉尼亚),备库放在美东(俄勒冈)。他们觉得都是美国,应该很快。结果呢?

  • 直线距离:约3,900公里
  • 理论单程延迟:约19.5毫秒
  • 实测单程延迟:60-80毫秒(路由绕路+设备跳数)

为什么会差这么多?因为海底光缆不是走直线的。它得绕开地质活跃区、避开航道、经过中继站。实际路径往往比直线长30%-50%。

典型跨区域延迟数据

下面这张表,是我根据多个云厂商的实际测试数据整理的。你可以拿它做参考:

源区域 目标区域 直线距离 理论单程延迟 实测单程延迟
美西(俄勒冈) 美东(弗吉尼亚) 3,900 km 19.5 ms 60-80 ms
北京 法兰克福 7,800 km 39 ms 150-200 ms
新加坡 伦敦 10,800 km 54 ms 180-250 ms
东京 圣保罗 18,500 km 92.5 ms 250-350 ms
悉尼 孟买 10,200 km 51 ms 160-220 ms

注意:实测延迟受海底光缆路由、网络拥塞、运营商BGP策略影响很大。同一对区域,不同云厂商的延迟可能差30%以上。我建议你以实际拨测数据为准,不要只看理论值。

延迟对数据复制的直接影响

搞清楚了物理基础,我们再来看它对数据复制意味着什么。

假设你在北京写了一条数据,要同步到法兰克福的备库。采用同步复制模式:

  1. 主库写入:本地完成,延迟忽略不计
  2. 日志传输:北京→法兰克福,单程150-200ms
  3. 备库确认:法兰克福→北京,单程150-200ms
  4. 总等待时间:300-400ms

这意味着,你的每一次写入操作,都要等300到400毫秒才能返回成功。对于OLTP业务来说,这几乎是不可接受的。

我曾经帮一个金融客户做过架构评审。他们坚持用同步复制做跨洲灾备,结果业务接口的P99延迟从5毫秒飙到了800毫秒。最后不得不改成异步复制,配合数据校验补偿机制。

一张图看懂延迟的物理基础

下面这张SVG图,把核心逻辑串起来了:

跨云数据复制延迟的物理基础 跨云数据复制延迟的物理基础 光速限制 真空光速:299,792 km/s → 光纤中光速:约200,000 km/s(约68%) 地理距离 实际路由路径比直线距离长30%-50% 理论延迟计算 单向延迟 = 地理距离 ÷ 200,000 km/s 实际延迟 = 理论延迟 + 路由绕路 + 设备跳数 + 协议开销 实测值通常为理论值的2-5倍 💡 核心结论:光速是硬约束,地理距离是天花板。跨区域延迟无法突破物理极限,只能通过架构设计来规避。

避坑指南

我曾经踩过一个坑,分享给你:

  • 别信云厂商的「区域内延迟」宣传:同区域不同可用区,延迟通常1-2ms。但跨区域,尤其是跨大洲,延迟直接跳一个数量级。
  • 别忽略路由绕路:北京到法兰克福,理论39ms,实测150-200ms。中间经过的海底光缆中继站、陆地光缆交接点,每个节点都会增加延迟。
  • 别把单程当往返:很多同步协议需要至少一次往返确认。设计时一定要算往返延迟,不是单程。

我的建议:做跨区域数据复制架构时,先拿实际拨测数据说话。用云厂商提供的延迟监控工具(比如AWS CloudWatch、Azure Network Watcher)跑一周数据,取P50和P99。别只看平均值,峰值延迟才是杀手。

嗯,这一章的内容就到这里。光速和地理距离是硬约束,理解它们,你才能在设计跨云复制方案时做出合理的选择。