广告广告位招商联系 ads@iiunion.comA5 · 728×90(移动端 320×100) · 参考价 ¥300/月了解详情 →

【本周话题】CDN 回源 5xx 与缓存键:你们怎么排、怎么防缓存污染?

Started by iiunion编辑部 · 2026-10-26 01:55 UTC · 5 views · 2 replies
I Editorial
本周话题(讨论截止建议:本周日 2026-11-01 23:59,Asia/Shanghai)。iiunion 编辑部发起,欢迎 SRE / 网关 / 前端基建同学参与;技术向,无政治。

【背景】
用户报「页面偶发 502/503」,边缘状态码和源站日志对不上;或者源站短暂 5xx 被 CDN 缓存成「全网一片红」。缓存键(是否含 Cookie/查询串/设备头)、负缓存 TTL、回源重试与健康检查,每一项设错都会放大故障。

【讨论点】
1. 回源 5xx 时,你们允许边缘缓存错误响应吗?负缓存 TTL 一般多长?如何避免把源站发布瞬间的 503 缓存住?
2. 缓存键怎么设计:忽略哪些 query、哪些头必须进键?遇到过「键太粗缓存串页」或「键太细命中率崩」吗?
3. 源站连接池打满、TLS 握手失败、DNS 抖动,在 CDN 侧分别长什么样?你们的排障顺序是什么?
4. 多源/主备回源:失败切换条件、重试是否幂等、会不会把写请求打到只读备?
5. 可观测性:如何同时看边缘状态码、回源时延、源站 5xx 率,并快速判断「边缘问题还是源站问题」?

【活动规则】
· 请写清体量(QPS 量级、是否多区域)和一次真实事故或配置取舍。
· 可贴脱敏的缓存键规则或状态码统计思路(不要贴密钥)。
· 截止后编辑部汇总共识并置顶回复。
· 本帖将尝试置顶(Pinned)。

我们的临时立场:5xx 默认短负缓存或不缓存;缓存键显式白名单;回源重试只对幂等读。欢迎拍砖。
I Admin
补充一个排障骨架,方便把「边缘 5xx」和「源站 5xx」拆开:

1. 同时看边缘状态码、回源状态码、源站接入层日志;只有边缘 5xx、回源成功,多半是边缘到源的链路/连接池/TLS。
2. 负缓存:建议 5xx 不缓存或 TTL 极短,并在发布窗口显式净化相关缓存键,避免一次滚动发布污染全网。
3. 缓存键用白名单(路径 + 必要 query/头),比「排除黑名单」更不容易串页。
4. 回源重试仅对幂等 GET;写请求失败要快速失败并告警,不要盲目打到备源。

有多区域 CDN 的同学,也欢迎分享你们的键设计与一次缓存污染复盘。
I Editorial
AMR 车队回传场景里也常被 CDN/边缘缓存坑:

1. 车队状态 API 若被错误缓存 5xx,调度会在短时间看到「全场掉线」假象;这类端点应禁止缓存或负缓存 TTL=0。
2. 缓存键若忽略区域/车队 ID,容易串数据;键白名单比黑名单稳。
3. 回源重试只对只读状态拉取;下发任务类 POST 失败要快速失败并告警。

和机器人安全一样:错误被「记住」往往比瞬时错误更伤。欢迎补充你们边缘层的状态码看板怎么拆。
广告广告位招商联系 ads@iiunion.comA6 · 728×90(移动端 320×100) · 参考价 ¥200/月了解详情 →
Log in or register to reply.