English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

每个 PoP 拥有平面中的一个单元

Voronoi 镶嵌

在平面上放置 N 个点(PoP:接入点)。绘制区域边界,使得平面上的每一点都分配给最近的 PoP。结果是一个 Voronoi 图:平面被划分为 N 个单元,每个 PoP 对应一个单元,每个单元包含所有距离其 PoP 比距离其他任何 PoP 更近的点。

CDN 几何结构:每个用户的请求路由到最近的 PoP。每个 PoP 服务于地理平面上的一个单元。单元边界是相邻 PoP 之间连线的垂直平分线。

几何解读:

- 添加一个 PoP 会缩小其邻居的单元(& 创建一个新单元)

- 移除一个 PoP 会迫使它的单元重新分配给邻居(邻居处出现容量激增)

- 位于单元边界附近的用户可能会随着负载均衡的变化而在不同的 PoP 之间切换

- 一个 PoP 的故障会在故障期间扩大所有邻居的有效单元

运营后果:当一个 PoP 故障时,其负载不会消失;它会迁移到邻近的 PoP。如果邻居仅按正常单元规模配置,激增的负载会接着导致它们故障(级联 PoP 故障)。成熟的 CDN 提供商在配置每个 PoP 时都会考虑邻居故障时的激增情况。

PoP 周围的 Voronoi 单元;一个 PoP 故障会扩大邻居单元

一个 CDN 运营 4 个 PoP 服务于美国本土:西海岸、山区、中西部、东海岸。每个 PoP 的规模约为美国总流量的 25%。山区 PoP 发生故障。预测:(1) 哪些邻居 PoP 将吸收重新分配的负载,& 大致比例是多少,& (2) 如果这些邻居恰好按 25% 配置且没有冗余容量,会发生什么。

无法规避的三角不等式

物理设定下限

光在真空中的传播速度约为 300,000 公里/秒。在光纤中,由于折射率的影响,速度约为 200,000 公里/秒。这意味着:

- ~1,000 公里光纤 = ~5 毫秒单程 = ~10 毫秒往返

- 美国东西海岸(~5,000 公里)= ~50 毫秒往返时间(RTT)最低值

- 美国到欧洲(~8,000 公里)= ~80 毫秒往返时间(RTT)最低值

- 对跖点(地球另一端)= ~200 毫秒往返时间(RTT)最低值

这是一个下限。 实际往返时间(RTT)总是更大(路由器跳转、交换、排队、拥塞)。没有任何应用程序能比物理允许的速度更快。

三角不等式

对于三个节点 A、B、C,三角不等式指出 d(A,C) <= d(A,B) + d(B,C):直接路径比(或等于)任何间接路径更短。

网络解读:如果你的服务将 A -> B -> C 路由而非直接 A -> C,延迟至少是两段延迟之和。通常由于 B 处的处理,延迟会更高。

架构解读:每一次间接层(代理、负载均衡器、CDN 跳转)都会为用户感知到的延迟增加至少一个往返行程。CDN 的优势在于缩短了用户侧的行程(边缘节点比源站更靠近用户),尽管总跳数增加了。

多区域陷阱:如果服务从区域 A 读取但向区域 B 写入,每次写入都会产生 A 到 B 的延迟。如果 A 和 B 相距 100 毫秒,那么每次写入至少需要 100 毫秒。跨地域数据库每次都要支付这个延迟底线。

延迟三角形:A-B-C 底线由物理距离决定

支付底线成本

一项服务运行在两个区域:美东(us-east-1)和欧盟西部(eu-west-1)。这两个区域相距约 5,500 公里。该服务的主数据库位于美东。欧盟用户的请求由欧盟西部的后端处理,但每次写入都需要回调美东的主数据库。

计算欧盟用户写入操作的延迟底线(从浏览器到欧盟西部后端,再到美东主数据库并返回的往返时间)。将其与完全由欧盟西部缓存状态服务的欧盟用户读取操作进行比较。然后提出一项架构变更,以降低欧盟用户的写入延迟底线。

地理容量设计

综合

你现在可以将 Voronoi 单元视为 PoP 的集水区,计算光速延迟下限,并在代理层应用排队曲线。

应用以上三点。

一个团队计划为某服务部署 CDN 覆盖,用户分布在三个大洲:北美(60% 的用户)、欧洲(30%)和亚洲(10%)。他们的预算支持部署 6 个 PoP(接入点)。每个 PoP 可以在 70% 的利用率下稳定服务一个单元,而不会触及排队曲线的拐点。

设计 PoP 部署方案:(1) 你如何将 6 个 PoP 分配到这三大洲?(2) 对于用户占比最小的区域(亚洲,10%),如果不存在亚洲 PoP,由欧洲 PoP 服务亚洲用户的延迟下限是多少(假设距离约为 9000 公里)?(3) 为了在单个 PoP 故障时避免级联故障,每个 PoP 需要多少容量冗余?

结束配套课程

结束配套课程

你已完成全部五门“几何之(geometry-of-)”配套课程:

- 代理与源站(Proxies & Origins):有向图、跳数(hop count)、扇入 / 扇出(fan-in / fan-out)、间接寻址(indirection)

- 无状态水平扩展(Stateless Horizontal Scaling):将利特尔法则(Little's Law)视为面积、排队曲线及其拐点(knee)

- 入口与出口分离(Ingress & Egress Separation):二部图结构、割点消除、分区容错性

- 故障模式与爆炸半径(Failure Modes & Blast Radius):介数中心性(betweenness centrality)、最小割(min-cut)、直径(diameter)

- 可观测性与容量(Observability & Capacity)(本课):Voronoi PoP 单元、延迟三角形下限、地理容量设计

贯穿主线:分布式系统具有几何结构。每一个架构都是一张图。每一个延迟下限都是一个三角不等式。每一个容量决策都是一条曲线及其拐点。一旦你看到了这种几何结构,运维决策便随之自然推导而出。

结合五门主课程(cs_distsys_*),你已建立起关于 Web 级分布式系统的可用心智模型,以及用于推理该系统的图论方法论。

干得好。