0

我们正在开发一个 Spring MVC Web 应用程序(在 Tomcat 7 中运行),目前我们的网站负载适中。由于用户数量的增加,必须不时筹集的主要资源是 RAM。

我们的一些 JSP 相当复杂,但另一方面,它们不会经常更改。我想知道是否有一个库或某种缓存系统,它将存储从 JSP 为最近的页面访问者生成的生成的 HTML,并将下一个用户作为静态内容提供服务。这将降低我们的应用服务器(CPU、RAM)的压力。

我的想法是它应该像某种服务器端缓存一样工作,这样我们就可以设置页面缓存为 HTML 的时间长度,并在必要时删除该缓存。Tomcat 将使用 HTML 版本(如果可用)或仅使用经典 JSP(如果需要)(然后生成 HTML)。到目前为止,我还没有发现类似的东西。

有任何想法吗?

4

2 回答 2

0

如果您的 Tomcat 前面没有反向代理,请考虑设置 Varnish,并让它缓存那些特定的 JSP(以及其他内容)。但请确保不要缓存任何敏感内容(特定于用户)。请参阅https://www.varnish-cache.org/

于 2013-05-22T19:23:04.500 回答
0

JSP 本质上是动态的。一个 JSP 页面首先被编译成一个 Servlet,然后响应客户端请求并为浏览器生成 HTML 内容。所以,你必须考虑你的设计。如果您使用 JSP 生成动态内容,则可能不应该缓存此特定页面。

否则,如果您知道内容确实是静态的,请将其制作为简单的 HTML(或 .xhtml)页面,跳过 JSP-Servlet 编译过程。您仍然可以创建一个 javax.servlet.Filter 来为这些特定的静态资源生成缓存头(缓存控制、过期等)。

如果您使用的是 Tomcat,您甚至可以创建一个充当请求处理过滤器的角色,作为服务器上静态资源的通用缓存过滤器。

于 2013-05-22T12:22:36.730 回答