- 后端
- 文档
- 教程
【免费下载链接】system-design-101
Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.
CDN(Content Delivery Network,内容分发网络)通过在全球范围内部署边缘服务器,把静态与动态内容缓存到离用户最近的地方,从而显著降低延迟、提升可用性并优化带宽成本。本篇以 System Design 101 仓库中的 CDN 主题文档为骨架,系统讲解 CDN 的价值来源、一次完整的请求是如何被路由到最近的边缘节点的,以及在生产环境中优化 CDN 的最佳实践,读完即可掌握 CDN 的核心组件、GSLB / Anycast / IXP 三类路由手段的差异,并能将其直接用于系统设计面试与线上架构评估。
为什么 CDN 如此流行:市场信号与价值来源
CDN 早已不是锦上添花的加速工具,而是现代 Web 基础设施的标配。从市场角度看,CDN 市场预计在 2028 年前后接近约 380 亿美元的规模,Akamai、Cloudflare、Amazon CloudFront 等主流厂商都在这一领域持续重金投入。高投入的背后是高需求:视频流媒体、电商大促、全球化的 SaaS 应用,都需要把内容"推"到用户身边。
CDN 带来的核心价值可以归结为四个方面(见 what-is-cdn-content-delivery-network.md):
- 降低延迟(Reducing Latency):内容不再必须跨越半个地球从源站(Origin Server)取回,而是从地理上最近的 CDN 节点直接命中缓存。
- 降低带宽成本(Reducing Bandwidth):大量重复的内容请求在边缘节点被拦截,源站出口带宽与 CDN 回源带宽都大幅下降。
- 提升内容可用性(Increasing Content Availability):边缘节点天然形成了冗余,即使某个源站或某个区域节点故障,流量也能被路由到其他可用节点。
- 增强网站安全性(Improving Website Security):尤其体现在对抗 DDoS(Distributed Denial-of-Service,分布式拒绝服务)攻击上——攻击流量在到达源站之前就会被边缘网络吸收和过滤。
这些收益在延迟敏感的业务上会被进一步放大。仓库中的 top-5-strategies-to-reduce-latency.md 指出,在降低延迟的常用策略清单里,CDN 与数据库索引、缓存、负载均衡、异步处理、数据压缩并列,是面向高规模用户系统的六大手段之一,可见其地位。
CDN 请求流程:从 DNS 到边缘节点再到源站
原文档给出了 CDN 请求的核心三步流程,这是理解 CDN 的钥匙:
- DNS 解析完成后,用户的设备把内容请求发送到 CDN 边缘服务器(Edge Server)。
- 边缘服务器先检查自己的本地缓存:
- 缓存命中:直接把内容返回给用户;
- 缓存未命中:把请求转发给源服务器(Origin Server)。
- 边缘服务器从源服务器拿到内容后,在本地缓存一份副本,再交付给用户。
把上述流程放到一次真实的浏览器访问里(参考 how-does-cnd-work.md 中 Bob 访问部署在伦敦的电商网站www.myshop.com的例子),整个链路会展开为更完整的 10 步:
- 用户在浏览器输入
www.myshop.com,浏览器先查本地 DNS 缓存。 - 本地缓存未命中,浏览器向 DNS 解析器(通常位于 ISP 侧)发起域名解析。
- DNS 解析器递归解析该域名,最终向权威域名服务器(Authoritative Name Server)发起查询。
- 不使用 CDN 时,权威域名服务器直接返回
www.myshop.com的源站 IP;使用 CDN 时,权威域名服务器返回的是一个指向 CDN 域名的别名(CNAME),例如www.myshop.cdn.com。 - DNS 解析器继续向权威域名服务器解析
www.myshop.cdn.com。 - 权威域名服务器返回 CDN 负载均衡器的域名,例如
www.myshop.lb.com。 - DNS 解析器向 CDN 负载均衡器解析
www.myshop.lb.com。负载均衡器根据用户的 IP 地址、用户所属 ISP、请求的内容类型以及各边缘服务器的实时负载,选出最合适的边缘节点。 - CDN 负载均衡器返回被选中的边缘服务器 IP 地址。
- DNS 解析器把该 IP 返回给浏览器——到这里才拿到真正的目标 IP。
- 浏览器访问 CDN 边缘服务器加载内容。边缘服务器缓存的既有静态内容(页面、图片、视频),也有动态内容(例如边缘计算的结果);若边缘节点未命中,请求会逐级上溯到区域 CDN 节点、中心 CDN 节点,甚至直达伦敦的源站 Web 服务器——这个逐级上溯的过程就是 CDN 的分发网络(distribution network)。
值得注意的是,DNS 解析本身就是这套流程的耗时大头。仓库中 how-does-the-domain-name-system-dns-lookup-work.md 给出的数据显示,一次 DNS 查询平均耗时在 20–120 毫秒之间,因此 CDN 在 DNS 层就引入的负载均衡与就近路由,实际上是整个性能优化链条的第一环。
CDN 架构的四大组件
CDN 的架构由四类组件构成(见 why-are-content-delivery-networks-cdn-so-popular.md):
| 组件 | 职责 |
|---|---|
| 源服务器(Origin Server) | 内容的首要来源,保存站点内容的"正本",例如部署在伦敦的电商 Web 服务器。 |
| 边缘服务器(Edge Servers) | 在全球范围内分布式部署,负责缓存并直接向用户提供内容,是距离用户最近的节点。 |
| DNS | 把域名解析为最近边缘服务器的 IP 地址,是请求路由的入口。 |
| 控制平面(Control Plane) | 负责配置和管理所有边缘服务器,例如下发缓存规则、更新内容、监控节点状态。 |
从仓库中 a-beginner's-guide-to-cdn-content-delivery-network.md 的补充可以看到,边缘服务器的价值不限于缓存,还延伸出两个重要概念:
- 边缘计算(Edge Computing):在靠近用户的节点上完成数据处理,而非全部集中到中心数据中心。这对需要实时处理的场景(视频流、在线游戏)尤其重要。
- 云游戏(Cloud Gaming):借助云计算为用户提供高质量、低延迟的游戏体验,正是边缘计算 + CDN 网络的典型落地场景。
CDN 请求路由的三种关键手段
路由是 CDN 的"指挥系统",决定了每个用户请求最终落到哪一台边缘服务器。原文档归纳了三种核心机制:
GSLB:全局服务器负载均衡
GSLB(Global Server Load Balancer,全局服务器负载均衡)根据以下因素把用户请求路由到合适的服务器:
- 地理邻近度(Geographic Proximity):优先选择离用户物理距离更近的节点;
- 服务器负载(Server Load):避开过载节点,实现跨节点负载均衡;
- 网络条件(Network Conditions):考虑各条链路的实时质量,而不是只看直线距离。
这与 internet-traffic-routing-policies.md 中总结的 DNS 路由策略一脉相承。除了基础的 Simple(简单路由,全部流量指向单一端点)之外,CDN 场景下最常用的是:
- Failover(故障转移):流量优先走主端点,主端点不可用时自动切换到备用端点;
- Geolocation(地理位置路由):按请求方的地理位置分发流量,提供本地化内容;
- Latency(延迟路由):把流量导向对请求方延迟最低的端点;
- Weighted Routing(加权路由):按权重把流量按比例分配到多个端点。
Anycast DNS:多个服务器共享同一 IP
Anycast 允许网络中的多台服务器共享同一个 IP 地址,通过 BGP 等路由协议把入站流量引导到"最近"的数据中心。这样做的好处是:用户始终与网络距离最近的节点建立连接,天然实现就近接入与高可用。
仓库中 unicast-vs-broadcast-vs-multicast-vs-anycast.md 对四种网络通信方式进行过对比,其中明确点出 Anycast 的典型用途就是DNS 查询和 CDN。与单播(Unicast,一个发送者对一个接收者,如 HTTP、FTP、SMTP)、广播(Broadcast,一个发送者对多个接收者,如 ARP、DHCP、NTP)、组播(Multicast,发送给特定设备组,如 IPTV、视频会议)相比,Anycast 是"一组主机对其中一个接收者"的最佳建模——同一个 IP 被广播到多个数据中心,路由器把数据包送给距离最近的那个。
Internet Exchange Points(IXP):与 ISP 直连交换流量
IXP(互联网交换点)是不同网络(ISP、CDN 厂商、云厂商等)之间直接交换流量的物理汇聚点。CDN 厂商在全球主要 IXP 建立接入点(PoP),其意义在于:
- 缩短路径:流量不再绕行公共互联网的冗长链路,而是通过 IXP 与本地 ISP 直接互联;
- 降低成本:减少对上游中转运营商的依赖,降低流量交换成本;
- 提升稳定性:减少中间跳数,降低丢包与抖动。
这解释了为什么主流 CDN 厂商都在全球铺设大量 PoP:节点密度直接决定了 IXP 互连的质量和就近路由的效果。
CDN 最佳实践:安全、缓存与内容优化
原文档将 CDN 最佳实践归纳为三大方向,结合仓库中相关文档可进一步细化:
1. 安全层面的优化
- DDoS 防护:边缘网络本身就是天然的流量清洗层,攻击流量在到达源站前被分散、过滤(见 what-is-cdn-content-delivery-network.md)。
- 源站隐藏:通过 CDN 代理真实源站 IP,配合 WAF(Web 应用防火墙)规则在边缘层拦截恶意请求。
- 边缘缓存未命中攻击防护:避免恶意流量反复制造缓存未命中、拖垮源站(仓库中 cache-miss-attack.md 专门讨论了这类攻击)。
2. 缓存层面的优化
- 合理设置缓存策略:对图片、视频、静态资源设置较长的 TTL;对动态内容采用边缘计算或按需回源。
- 多级缓存回源:边缘 → 区域 → 中心 → 源站的逐级回源设计,可以显著降低源站压力(见 how-does-cnd-work.md 的分发网络部分)。
- 注意缓存失效与一致性:缓存系统设计时需考虑替换、失效与挑战(仓库 learn-cache.md 覆盖了缓存部署、分布式缓存、替换与失效策略等完整议题)。
3. 内容层面的优化
- 静态内容优先上 CDN:页面、图片、视频等静态资源是缓存命中率最高的内容类型;
- 边缘计算承载动态内容:把需要实时处理但又不适合全部回源的逻辑下沉到边缘节点;
- 压缩与格式优化:在边缘层完成数据压缩与媒体转码,减少回源与下行的数据量。
小结:CDN 为什么"值得流行"
回到最初的问题——CDN 之所以如此流行,本质上是它用一套分布式边缘网络同时解决了性能、成本、可用性和安全四类问题:GSLB 与 Anycast 让每个用户都能就近访问,多级缓存让源站从海量重复请求中解放出来,IXP 直连让流量走最短路径,而边缘层天然成为 DDoS 的第一道防线。无论你是准备系统设计面试,还是为线上业务评估架构,都可以把本篇的请求流程、四大组件与三种路由机制作为理解 CDN 的最小知识框架,再结合仓库中 a-beginner's-guide-to-cdn-content-delivery-network.md、how-does-cnd-work.md 与 what-is-cdn-content-delivery-network.md 等文档继续深入。
- 后端
- 文档
- 教程
【免费下载链接】system-design-101
Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.
相关推荐
System Design 101:CDN 内容分发网络工作原理详解(DNS 解析、边缘缓存与回源机制)
System Design 101:CDN 内容分发网络工作原理详解(DNS 解析、边缘缓存与回源机制) 本文以 system design 101 仓库中的
后端文档教程oauth2-proxy 请求行为全解析:认证要求、放行路由与转发流程
oauth2 proxy 请求行为全解析:认证要求、放行路由与转发流程 导读 本文以 oauth2 proxy 7.7.x 版本的行为文档 behaviour.
后端API网关认证鉴权GitHub_Trending/sys/system-design架构分析:Hashnode如何规模化生成内容流
GitHub_Trending/sys/system design架构分析:Hashnode如何规模化生成内容流 引言:内容分发平台的规模化挑战 在当今数字化时
文档教程知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考