首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CDN 缓存策略踩坑实录:命中率、回源与刷新的正确姿势

CDN 缓存策略踩坑实录:命中率、回源与刷新的正确姿势

原创
作者头像
PikeTalk
发布于 2026-10-12 07:53:56
发布于 2026-10-12 07:53:56
1270
举报

命中率 95% 也可能是在浪费钱

很多团队看 CDN 报告只盯命中率,95% 看起来很健康——但剩下 5% 的回源如果打的是大文件或动态接口,回源带宽费可能比 CDN 费用还高。CDN 缓存策略的三个核心问题:什么该缓存、缓存多久、怎么正确刷新。这篇是我们踩坑后的标准姿势。

一、缓存配置:按内容类型分治

一套缓存规则打天下是常见错误。按内容类型分治的标准配置:

- 静态资源(JS/CSS/图片):带内容 hash 的文件名 + 长缓存(一年)——文件变更靠改文件名而非刷新缓存;

- HTML 页面:短缓存或不缓存,配合 s-maxage 与 stale-while-revalidate(先回旧内容再后台更新);

- API 响应:默认不缓存;确需缓存的 GET 接口用短 TTL + Key 精确控制;

- 大文件(安装包/视频):单独预热策略,避开业务高峰刷源。

一个实战细节:Set-Cookie 响应头会让 CDN 默认不缓存——静态资源域名与业务域名分离(img.xxx.com 与 www.xxx.com),是最省心的架构解法。

二、回源治理:命中率之外的另一本账

回源治理三件事:

1. 回源跟随与合并:同一资源的并发回源请求合并(request coalescing),避免 N 个节点同时回源打穿源站;

2. 二级缓存:源站前加一层本地缓存(或边缘节点做父层),回源不直接打源站;

3. Range 回源:大文件回源开启分片拉取,源站带宽不会被单文件占满。

监控指标:回源带宽、回源请求数、源站错误率。回源错误率的告警比命中率更重要——缓存失效叠加源站故障是经典的雪崩配方。

三、刷新:该快的时候快,不该快的时候忍住

缓存刷新(Purge)的正确用法:

- 目录级刷新有配额:全网目录刷新会击穿缓存,高峰期慎用——发布场景优先用「版本化文件名」替代刷新;

- URL 精确刷新:改动少的场景用 URL 刷新,便宜且安全;

- 预热:大文件或活动资源提前预热到边缘节点,别让第一批用户当回源韭菜。

一个真实事故:活动页上线时运营要求「刷新全部缓存」,高峰期目录刷新把回源带宽打到源站限流,页面打开率暴跌。之后我们的规范:刷新申请走工单,注明范围与时间窗,高峰期只允许 URL 级刷新。

四、监控三指标

CDN 的健康面板三指标:命中率(分流量与请求数两个口径)、回源带宽与回源错误率、边缘节点 5xx 率。命中率高但「回源错误率」上升,往往意味着缓存了错误内容——比命中率下降更隐蔽。

结语

CDN 缓存的正确姿势:按内容类型分治配置、回源单独治理、刷新有纪律。命中率只是起点,回源账本和刷新纪律才是架构师该盯的深度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 命中率 95% 也可能是在浪费钱
  • 一、缓存配置:按内容类型分治
  • 二、回源治理:命中率之外的另一本账
  • 三、刷新:该快的时候快,不该快的时候忍住
  • 四、监控三指标
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档