2. CDN:你的"全球快递网络"
2.1 需要 CDN的原理
想象你开了一家网店,服务器放在深圳。现在有个用户在北京访问你的图片:
没有 CDN:请求从北京→河北→河南→湖北→湖南→广东→深圳,跨越 2000 多公里,来回就是 4000 多公里。光网络传输就要几十毫秒,遇到网络拥堵更惨。
有了 CDN:请求从北京直接到北京的 CDN 节点(可能就在北京联通机房),距离从 2000 公里变成 20 公里,延迟从 50ms 变成 5ms。
这就是 CDN 的核心价值:让内容离用户更近。
2.2 CDN 的核心架构
边缘节点:离用户最近的"快递站"
边缘节点是 CDN 网络中最接近用户的层级,通常部署在:
- 运营商机房(联通/电信/移动)
- 大城市互联网交换中心
- 重要交通枢纽
中国主要 CDN 节点分布:
- 一线城市:北京、上海、广州、深圳
- 二线城市:杭州、南京、成都、武汉、西安
- 海外:香港、新加坡、东京、硅谷、法兰克福
源站:内容的"总仓库"
源站是 CDN 回源获取内容的地方,可以是:
- 对象存储(OSS/COS/S3)
- 自建服务器(ECS/物理机)
- 负载均衡(SLB/CLB)
关键配置:
- 回源 HOST:CDN 节点访问源站时使用的域名/IP
- 回源协议:HTTP 还是 HTTPS
- 回源端口:80、443 还是自定义端口
中间层节点:"区域分拨中心"
在边缘节点和源站之间,CDN 通常还有一层或多层中间节点:
- 汇聚节点:聚合多个边缘节点的回源请求,减少源站压力
- 区域中心:负责一个大区的内容分发和调度
这种分层架构的好处:
- 降低源站压力:1000 个边缘节点的请求,可能只需要向源站发起 10 次
- 提高命中率:热门内容在中间层就被拦截,不需要回源
- 故障隔离:某条链路出问题,可以自动切换到其他路径
2.3 CDN 加速的完整流程
让我们跟踪一次真实的用户请求:
Step 1:DNS 解析(智能调度)
用户输入:cdn.example.com/image.jpg
↓
DNS 服务器返回:北京联通 CDN 节点 IP(1.2.3.4)这里的关键是智能 DNS:根据用户的运营商、地理位置、节点负载,返回最优的 CDN 节点 IP。
Step 2:边缘节点查找(缓存命中?)
请求到达北京联通 CDN 节点(1.2.3.4)
↓
节点检查本地缓存:
├─ 命中?直接返回内容 ✓
└─ 未命中?继续下一步Step 3:回源获取(层层向上)
边缘节点未命中
↓
向父节点(如:华北区域中心)请求
├─ 父节点命中?返回内容
└─ 父节点未命中?继续向上
↓
向源站请求
↓
源站返回内容Step 4:缓存并返回(下次更快)
内容沿链路返回
↓
每层节点都缓存一份
↓
最终到达用户这样,下次有用户请求同一个文件时,就能直接从边缘节点返回,实现"秒开"。