首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌CDN驱逐太激进了?

谷歌CDN驱逐太激进了?
EN

Stack Overflow用户
提问于 2019-12-11 10:45:41
回答 1查看 211关注 0票数 0

我使用google CDN和google负载均衡器,它有几个后端服务,每个服务都有不同的google CDN设置,如下所示。

代码语言:javascript
复制
service A: google CDN disabled (API server)
service B: google CDN enabled, 1day (Cache-Control: public, max-age=86400), cache-key: full URL
service C: google CDN enabled, 1year (Cache-Control: public, max-age=31536000), cache-key: full URL

问题是,service C收到了来自谷歌负载均衡器的请求,该URL昨天已经被请求并被正确处理。(status 200, with Cache-Control header and Content-Length)

这并不总是发生,例如,在从我们的服务器返回响应后,google负载均衡器返回响应而不进行查询。但是大约一天过去了,他们又开始问了。请注意,我提出的请求几乎相同的地理位置。

经过一些谷歌搜索,我已经在SO上找到了下面的链接,它说google CDN正在积极地驱逐它的内容(说总共只有10MB缓存大小),https://stackoverflow.com/a/54031267/1982282

并且google CDN不保证尊重max-age。Google Cloud CDN ignores max-age over 3600

但是,上述问题的原因是,真的是这种激进的驱逐吗?

实际上,我们的服务器还在开发阶段,所以没有大量的流量,而且总的缓存大小只有10MB或更多。但在我个人感觉,我不能相信谷歌CDN驱逐内容如此之难(在1天内,10MB+大小)。

有没有人能分享你对谷歌CDN驱逐率的经验?

致以敬意,

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 23:40:38

简而言之,CDN缓存内容以及随后的缓存命中受到几个独立因素的影响,特别是缓存内容回收、内容过期、用户请求强度和大小。除此之外,云CDN还可以发起其他请求作为缓存算法的一部分:即验证请求和字节范围请求。

因此,您不应该期望通过调整单个参数(例如max-age )来停止对源服务器的请求。

正如Google Cloud CDN文档中提到的,

对于要从缓存中提供的内容,它必须已插入到缓存中,不能被逐出,并且不能过期。

被逐出的内容可能已过期,也可能未过期。设置过期时间不会影响驱逐。

随着缓存接收更多的流量,它们也会逐出更多缓存的内容。

由于缓存的性质,无法预测特定请求是否会在缓存之外提供服务。

谈论缓存内容的任何类型的“积极驱逐”都是相当不正确的。云CDN缓存的行为就像它应该做的那样。这里清楚地描述了这种行为:

Google Cloud CDN: Overview

Google Cloud CDN: Caching Details

这篇文档还解释了这里提到的关于这个问题的另外两个“问题”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59278187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档