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 如何工作的图表:
Google Front End
数据中心位于世界各地,可以存储缓存数据,以便在需要时快速返回,而无需运行任何 App Engine 代码(在“App Engine 前端”上运行)。
有关反向代理的更多信息,请参阅此 StackOverflow 答案 。
现在的情况
不幸的是,目前关于 GAE 的 EdgeCache 的知识状况非常糟糕。关于这个秘密功能的文档范围可以在 2011 年的论坛帖子 (现在阅读!)和 11:11 到 11:35 之间的 24 秒内在 Google 的视频中找到 。
更多资源
以下是我们发现的与 App Engine 的 EdgeCache 功能相关的更多资源的列表:
- App Engine 架构和服务视频
- 来自 Brandon Wirtz 的精彩论坛帖子
- Google App Engine 第 2258 期 (自 2009 年开始)
- StackOverflow 问题: 关于 Google App Engine 的缓存代理的详细信息?
- App Engine 缓存上的一个词
- 配置 EdgeCache