清漆:始终服务器增加"过期"内容

时间:2014-03-12 00:05:43

标签: caching varnish

我有一个关于Varnish服务过期的“增加”项目的问题。假设以下情形:

  • 我的后端需要5秒钟才能生成index.php
  • 我将我的beresp ttl设置为1分钟
  • 我的优雅到1小时。

当第一个客户端获取index.php时,他将等待5秒钟。因为没有缓存的index.php项,所以客户端将等到后端服务器生成内容。

对于下一分钟,下一个客户端将不会等待index.php,将提供缓存版本。

分钟过后,以下客户端将再次等待5秒钟。 (由于1小时宽限期,此5秒窗口中的所有后续请求都将获得缓存内容。)

在生成内容时,不是让客户端等待5秒,Varnish是否可以在varnish获取新内容时提供过期(增加)的index.php?这样,index.php将始终每1分钟更新一次,而不会让客户端等待。

更新

我发现了这个:http://lassekarstensen.wordpress.com/2012/10/11/varnish-trick-serve-stale-content-while-refetching/

虽然看起来有点难看。

2 个答案:

答案 0 :(得分:1)

据我所知,目前的稳定版本不可能,但Barn Varnish 4将支持背景提取。您可以在VUG8的主题演讲slides中找到有关Varnish 4的更多信息。

答案 1 :(得分:0)

你似乎是对的Arjan。

来自:https://www.varnish-cache.org/releases/varnish-cache-4.0.0-tp1

完整的流媒体支持,包括异步后端提取。这使得Varnish能够在从后端获取或重新验证对象时为过时的对象提供服务。