Caching 清漆及;ESI:并行获取和可能的解决方法

Caching 清漆及;ESI:并行获取和可能的解决方法,caching,memcached,reverse-proxy,varnish,esi,Caching,Memcached,Reverse Proxy,Varnish,Esi,我正在研究使用Varnish和ESI来缓存高流量论坛类网站的页面内容 上下文:我只想为访问者缓存内容(连接的用户将有完全不同的显示,需要绝对新鲜的内容)。但是,对于访问者来说,页面的某些部分需要是动态的: -不可缓存,例如,对于依赖访问者的模块(考虑一个“建议”小部件,它通过信标对所查看的页面进行实时分析) -可使用15mn的小TTL进行访问,例如“最新帖子”小部件或非常多变的广告活动 目前,我们使用Apache/PHP/symfony/memcache来缓存页面,并拥有类似于mecanism的

我正在研究使用Varnish和ESI来缓存高流量论坛类网站的页面内容

上下文:我只想为访问者缓存内容(连接的用户将有完全不同的显示,需要绝对新鲜的内容)。但是,对于访问者来说,页面的某些部分需要是动态的: -不可缓存,例如,对于依赖访问者的模块(考虑一个“建议”小部件,它通过信标对所查看的页面进行实时分析) -可使用15mn的小TTL进行访问,例如“最新帖子”小部件或非常多变的广告活动

目前,我们使用Apache/PHP/symfony/memcache来缓存页面,并拥有类似于mecanism的内部ESI:解析缓存中的页面并解释一些特定的标记(包括对web服务和/或数据库的调用)。这还不够,因为服务器时间大约为700毫秒

在替换该溶液时,我们可以使用Varnish+ESIs。一页中包含的ESI总nb可以达到15。要获取的ESI的实际数量将小于此数量,但考虑到ESI的TTL,实际数量不会太多。关键问题是Varnish以顺序而不是并行方式获取ESI,这是不可接受的。这项功能在Varnish的路线图中较晚出现

所以

  • 你对清漆和涂料有什么经验?您有多少ESI、响应时间增益

  • 您知道解决方法或其他严重的可配置(VCL很好)反向代理与并行ESI抓取吗

  • 如果不是,那么对于相同的用例,您使用哪种好的缓存策略

谢谢,
P.

目前我在一个高流量网站工作,性能是我们的一切。在一些页面上,我们使用了大量(20+)ESI,例如在搜索结果列表上。resultlist是JSON响应,其中的每个resultblock都是一个单独的ESI。好的,我们有。但我们在这方面没有遇到任何性能问题。如果后端请求非常慢,ESI的数量将是一个问题


Parallel ESI fetching在Varnish的功能请求列表中,但我认为它在4.1版中没有出现。

15 ESI包括哪些功能?这是一个相当疯狂的数字。你不能将这些内容重新排列成更小数量的组并用CSS定位它们?事实上不是这样,页面有很多动态内容来自不同的数据源,具有不同的TTL(想想几个广告区、推荐、用户模块等等),再次看这个问题(现在你戳我了):这是一个关于堆栈溢出的过于开放和模糊的问题(请参阅);将注意力集中在特定方面,可能是关于服务器故障的主题(但请先查看他们的常见问题)。