EdgeCache

细节

  • 启用 Edge Cache 并运行时,App Engine 会发送一个 age 标头,其值是自缓存响应以来的时间(以秒为单位)。例如,如果到目前为止响应已缓存两分钟,则响应将包含 age: 120 的标头。如果没有发送 age 标头,这是一个好的迹象,表明你还没有使用 Edge Cache。此外,当响应不包含 age 标头时,表示请求错过了边缘缓存。
  • Edge Cache 在本地开发环境中不起作用。
  • 不同地区有不同的缓存。世界各地都有单独的缓存。例如,来自欧洲的请求可能会遇到缓存,而来自澳大利亚的请求可能不会达到 Edge Cache。
  • 即使在同一地区,也有多个缓存。例如,来自同一客户端的两个连续请求可以接收具有针对 age 报头的不同值的响应。
  • 在达到最大年龄之前,Google 会从 Edge Cache 中删除内容。如果资源的请求时间超过 5 分钟,则尤其如此。
  • Google 会自动发送 Vary 标头,其值为 Accept-Encoding,并带有一些响应。请参阅此文档
  • 如果你还有 Set-Cookie 标头,App Engine 将不允许你将 Cache-Control 标头设置为 public。如果有 Set-Cookie 标头,App Engine 甚至会将 Cache-Control 标头的值从 public 更改为 private。看到这里

EdgeCache 的工作原理

EdgeCache 是​​一个反向代理缓存,可以存储特定时间段的数据,只要缓存仍然有效,只要看到相同的请求就会快速返回。

以下是来自 App Engine 团队的视频中有关 EdgeCache 如何工作的图表:

EdgeCache 图

Google Front End 数据中心位于世界各地,可以存储缓存数据,以便在需要时快速返回,而无需运行任何 App Engine 代码(在“App Engine 前端”上运行)。

有关反向代理的更多信息,请参阅此 StackOverflow 答案

现在的情况

不幸的是,目前关于 GAE 的 EdgeCache 的知识状况非常糟糕。关于这个秘密功能的文档范围可以在 2011 年的论坛帖子 (现在阅读!)和 11:11 到 11:35 之间的 24 秒内在 Google 的视频中找到

更多资源

以下是我们发现的与 App Engine 的 EdgeCache 功能相关的更多资源的列表: