【问题标题】:Details on Google App Engine's caching proxy?有关 Google App Engine 缓存代理的详细信息?
【发布时间】:2010-10-16 04:12:40
【问题描述】:

Google App Engine 必须具有某种反向缓存代理,因为当我从我的一个 servlet 设置响应标头 Cache-Control public, max-age=300 时,对应用引擎的后续请求会显示在如下日志中:/testcaching 204 1ms 0cpu_ms 49kb,而没有- 缓存请求在日志中显示为:/testcaching 200 61ms 77cpu_ms 49kb

无论如何,我的问题是:有没有人有关于这个反向缓存代理的更多细节?

【问题讨论】:

  • 你想要什么样的细节?有一个,它托管在您用户附近的端点上,如果您要求它缓存数据,它会缓存数据。 :)
  • @Nick - 谢谢,这些都是很好的细节。我想我只是想知道我是否可以依靠它来缓存我告诉它的东西,并且将来不会对应用引擎进行一些更改来删除反向缓存代理。
  • 好吧,你永远不能完全依赖缓存——它本质上是一个概率系统,因为你的数据随时可能被驱逐。不过,我们当然没有任何计划在不久的将来完全删除它。

标签: google-app-engine caching


【解决方案1】:

我找到的关于 App Engine 缓存代理的最佳文档是 a post to the App Engine group。下面引用的相关部分供后人参考。所有功劳归功于 Brandon Wirtz:

“如果你想让边缘缓存发挥作用,你需要确保你已经完成了以下事情

  1. 设置为公开。如果您不设置公开,它将永远不会被缓存。
  2. 设置最大年龄。如果你设置了 public 但没有指定 max-age 它不会被缓存
  3. 使用逗号。 public, max-age=300 工作正常。 Public; max-age=300 没有。
  4. 设置一个大于 60 的年龄。61 似乎缓存。 60没有。我可能会根据到期时间缓存一些卷,但在我们运行的卷上 61 秒,61 似乎可以缓存,而 60 似乎从来没有。
  5. 将年龄设置为小于 366 天。 364 天似乎有效。 365大部分时间都在工作。 366似乎从来没有工作过。因此,人们谈论的那些“永不过期”类型的帖子是关于永不过期的版本化资产。好吧,10 年不是正确答案。
  6. 过期日期似乎没有帮助,并且在某些情况下似乎可能会阻止缓存。我认为这可能是时钟漂移。或者关于解析器对日期格式的挑剔程度。在浏览器中工作的东西在边缘缓存中并不总是能正常工作……(比如 Semi 与逗号)
  7. 同时设置 Pragma 和 Cache-Control。如果 Pragma 没有设置为 Public,那么 Cache-Control 似乎会被忽略。”

【讨论】:

    【解决方案2】:

    一些细节如果能得到答案会很高兴:

    http://code.google.com/p/googleappengine/issues/detail?id=2258#c3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多