CDN 如何缩短用户到内容的距离?
- CDN: 在多个地理位置部署边缘节点,把可缓存内容放到更靠近用户的位置;
- 源站: 保存内容的权威版本,负责产生或更新内容;
- 边缘节点: 缓存并交付静态资源,如图片、视频、HTML、CSS 和 JavaScript;
- 请求路径: 用户被路由到合适边缘,命中时直接返回,未命中时按策略向源站或上级缓存取数据;
- 地理收益: 用户在英国、源站在美国时,命中伦敦边缘可以减少跨洋往返;
- 系统收益: 降低源站压力、改善全球延迟并提供冗余,部分产品还提供入口安全能力;
推送式 CDN 如何提前部署内容?
- Push: 内容发布方主动把新增或变化内容上传到 CDN,并配置访问 URL、版本和有效期;
- 优点: 可以明确控制发布时间,用户首次访问前内容已准备好;
- 代价: 发布方承担同步和过期管理,也可能为无人访问的内容付出存储成本;
- 适用条件: 更新节奏可控、希望预热特定内容时更容易发挥作用,不能只按总流量判断;
拉取式 CDN 如何按需填充内容?
- Pull: 用户请求触发查询,边缘没有内容时回源获取并缓存,后续请求复用;
- 优点: 只为被访问的内容填充,降低主动发布维护成本;
- 代价: 冷启动请求更慢,大量同时未命中可能形成回源尖峰;
- 更新条件: 源站内容改变不会让所有缓存自动即时更新,需要 TTL、版本 URL 或主动失效;
怎样判断 CDN 是否值得采用?
| 检查项 | 对设计的影响 |
|---|
| 用户分布 | 边缘覆盖不足时路径未必变短 |
| 命中率 | 决定有多少源站请求真正被节省 |
| 资源大小 | 视频等大对象使流量费用更重要 |
| 内容敏感性 | 私有资源需要鉴权与合适的缓存键 |
| 故障与限制 | 域名、IP 或地域限制可能影响可达性 |
- 成本: CDN 增加分发费用,但可能减少源站带宽与计算支出,应比较总费用;
- 原文示例: CloudFront、Google Cloud CDN、Cloudflare CDN、Fastly,仅作为实现入口;
- 相关概念: CDN 重点解决地理分发,缓存写入、失效与淘汰是另一类机制;