我目前正在迁移一个包含大量静态内容(HTML文件)和一些动态内容的大型网站。
我正在努力创建性能最高的网站,尝试尽可能地保持一切尽可能静态,尽可能少使用servlet。但是,由于旧网站支持复杂的URL,我需要一些重写,并且需要一些它是动态的,例如: http://oldsite/url.html和http://oldsite/url都适用于相同的网址...
我正在寻找表现事实,例如以基准测试结果来支持静态服务网站的影响。
最初我以为我会创建一个过滤器,但这会在每次进入网站的请求时产生开销。我想过只使用覆盖404提到here的东西,然后开销相对较低(对于旧的书签/缓存)。
还有rewrite选项,但这两个都是锁定的,我不确定如何使用它将空白URL映射到HTML文件...目前我猜它是最高性能的方式虽然。
答案 0 :(得分:1)
如果重写/重定向是直接的(不需要正则表达式),您可以使用静态concurrent Radix Tree并使用要应用的所有重写/重定向对其进行初始化。 在最坏的情况下,Radix Tree将无法识别不应重命名的URL,因为它并发且快速,因此不应造成巨大负担。
如果您需要类似regexp的重写并且您不想只依赖于Apache Tomcat,那么您也可以尝试{em> 为所有Servlet工作的UrlRewriteFilter - 兼容的应用服务器 尽管它看起来似乎是一个非常缓慢的解决方案claim但它实际上非常快。