2014-03-04 93 views
1

我有一个服务器(Linux/Apache-Tomcat的&MySQL),它承载几个几乎相同的网站。至少,java库是相同的。在一台服务器上的许多相同的网站

现在,每个网站都有它们自己的带有这些java类的.jar文件。

我想知道这是否是一种好的做法,或者我应该将这些课程放在每个网站都可以访问它们的地方?这会以任何方式提高性能吗?它会导致JVM的内存使用量减少吗?是否有任何下降?

我一直没有找到任何有关这种情况的信息。

+1

我只问是否只有一个.jar文件,而不是许多相同的.jar文件更好。我认为你不需要很多段落来回答这个问题(如果你知道答案的话)。 – Sergio

+1

[Tomcat中的第三方库最佳实践]的可能重复(http://stackoverflow.com/questions/6397334/third-party-libraries-best-practice-in-tomcat) –

回答

4

上行:少量的磁盘空间和RAM被保存。请记住,唯一占用的堆空间属于java.lang.Class实例,表示实际从该JAR文件加载的类型。

缺点:JVM中的所有应用程序都使用共享库的版本进行锁定。如果你真的希望所有部署的web应用程序是相同的,那么这真的没有任何缺点。部署可能会变得棘手,因为你必须维护一个非标准的部署过程(例如,webapp不是独立的),这可能与容器到容器或者同一容器的版本不同(例如Tomcat在版本之间改变了主意)关于如何配置“通用”和“共享”库的方法,请参阅第4和第5,5和5.5以及第5和第6章)。

如果Web应用程序是相同的,您应该问自己:您是否应该部署多个应用程序?相反,您可以嗅探URL并为每种客户端使用配置,而不是单独部署应用程序。

相关问题