假设我们有一个由更多系统(Liferay等)组成的复杂Web应用程序。
我想在我的架构中加入一个用于缓存公共内容的Web缓存系统(例如,由Liferay或其他内部服务生成)。
我正在查看 Squid
。您能否向我推荐其他技术,例如squid
?
是否有一些标准方法可以在私人内容(用户注册)上应用缓存?
如何处理动态页面(例如带有其他公共和私有(仅限注册用户)片段的jsp?
答案 0 :(得分:1)
如果你看一下鱿鱼,你就是在寻找HTTP级别的缓存。因此,每当有人登录到您的系统时,您将不得不在缓存中工作:一旦用户名出现在页面上或检查了某些权限以进行内容访问,您就不能在HTTP级别上进行一般缓存。用户的浏览器(或外部媒体,如CSS,图像)。
对于Liferay,您可以查看Liferay的CDN功能:您可以配置CDN(内容分发网络),该CDN(内容分发网络)可以处理与反向代理类似的外部主机 - 这些内容将在门户网站为页面提供服务时提供可缓存的内容(尤其是用于记录的内容)在用户)
Liferay还会向上游缓存发出信号,如果匿名访问的页面的所有内容都表示它可以缓存,则可以缓存这些页面。这是自动的。我假设你没有询问你需要在单个portlet中做什么来表示他们的内容是可缓存的。
您应该问问自己,您想要解决什么问题(因为您只提到了这一项技术,HTTP级别缓存)。您是否进行了性能调整,这被认为是最大的瓶颈?您的大多数用户是匿名还是登录?当你明确要求缓存动态内容时:这通常无法完成,或者只能以有限的方式进行 - 例如只有通过组合生成AJAX代码的静态内容中的页面,才能获取真实内容。