【发布时间】:2011-11-29 09:26:01
【问题描述】:
我有几个场景,我最终需要在几个月后考虑。只是把问题扔在那里,以便我可以同时考虑讨论。
我将 Zend Framework 用于我的应用程序堆栈。我正在使用 APC 进行服务器缓存(而不是 memcache,因为我不相信 memcache 对我有任何好处,即使我的应用程序是分布式的。)
我的应用程序已经构建为在没有 JavaScript 的情况下工作,然后为了支持 JavaScript,我将页面分解并呈现 JavaScript 友好版本。
如果你分析一个简单的页面,可能 80% 是核心功能,可以为每个用户缓存。然后为该用户定制其中的 20%。例如,我可能想显示
- 最近查看的 5 个项目
- 收藏项目
这两个“小部件”将针对每个用户。我正在考虑对这些组件使用 ESI,但后来我发现任何/我的 Zend Framework 应用程序最消耗的方面是引导和调度过程。因此,如果我的应用程序当前需要 80 毫秒而没有缓存。就像 90% 的相对时间花在引导程序和插件挂钩上,如果我要使用 ESI 加载这两个“小部件”,那么我会有效地将负载添加到每个页面?因为我将为每个缓存页面启动另一个 80 毫秒的请求。
在这种情况下,您是否建议只通过 JavaScript 加载自定义的小部件/sn-ps,一旦加载初始页面就可以拉取。这样做的明显好处是,只有一个请求被缓存,然后在初始页面(被缓存)被提供后,任何定制的东西都会被拉入一个请求中。
如果我正在寻找最高性能,这似乎是更好的解决方案?
【问题讨论】:
标签: zend-framework caching varnish esi