📄 一句话概括
几百个节点什么时候更新:主动型定期去源站拉(内容新鲜、但更新瞬间压力大,要错峰);被动型被访问才取(省带宽、冷门内容首访慢)——选择直接影响源站性能。
📝 本节和前面几节的关系
CDN 的最后一课:节点一多,更新本身就成了性能问题。
一、两种更新法
主动型:定期从源站拉取,哪怕没人访问—— 内容新鲜;但几百节点同一瞬间来拉,源站会被自家缓存打瘫; 被动型:被访问时才去取——省带宽,冷门内容首访慢。
二、工程上的解
主动更新要错峰(各节点排不同时间); 混合策略常见:热门内容主动推,长尾内容被动取。
三、动手 Demo:缓存怎么更新
几百个节点的缓存,什么时候去源站更新?
for a, b, c in [('主动型','定期从源站拉取','内容新鲜;更新瞬间压力大'),
('被动型','被访问时才去取','省带宽;冷门内容首访慢')]:
print('%-4s %-14s %s' % (a, b, c))
实跑输出:
--------------------------------------------------------------------
缓存怎么更新
--------------------------------------------------------------------
几百个节点的缓存,什么时候去源站更新?
方式 做法 特点
-------------------------------------------------------
主动型 定期从源站拉取 内容新鲜;更新瞬间压力大
被动型 被访问时才去取 省带宽;冷门内容首访慢
-------------------------------------------------------
主动型的坑:几百个节点**同一瞬间**来拉,
源站会被自家缓存打瘫——所以要错峰更新。
换个视角看:5.4.2 的【每次对账】在几百节点规模下, 乘出来的请求量也不小——规模改变一切。
30 秒实验
- 算算 300 个节点每小时对账一次是什么请求量。
- 想想什么内容适合主动推、什么适合被动取。
- 查查 CDN 的【缓存预热】功能是干嘛的。
常见误区
- 以为更新越勤越好——源站会被打瘫。
- 以为只有一种更新模式——主动被动各管一摊。
自测三问(点开对答案)
1. 主动型的问题? —— 更新瞬间源站压力大,要错峰。 2. 被动型的问题? —— 冷门内容首访慢。 3. 常见的混合策略? —— 热门主动推、长尾被动取。- ☐ 下一节(COLUMN 当通信线路变成局域网)
相关笔记
- 缓存服务器通过更新时间管理内容 — 单台的对账逻辑
- 利用内容分发服务分担负载 — 规模化的起点
- 🔌 网络是怎样连接的 · 索引