我有一台服务器(Linux / Apache-Tomcat& MySQL),它拥有几个几乎相同的网站。至少,java库是相同的。
现在,每个网站都有自己的带有这些java类的.jar文件。
我想知道这是不是一个好习惯,或者我是否应该在每个网站可以访问它们的地方安排这些课程?这会以任何方式改善性能吗?它会导致JVM的内存使用量减少吗?有没有下行?
我无法找到与此情况相关的任何信息。
答案 0 :(得分:4)
上升:节省少量磁盘空间和RAM。请记住,所占用的唯一堆空间属于java.lang.Class
实例,表示您实际从该JAR文件加载的类型。
缺点:使用共享库的版本锁定JVM中的所有应用程序。如果您真的希望所有部署的Web应用程序都相同,那么这确实不是缺点。部署可能会变得棘手,因为您必须维护一个非标准的部署过程(例如,webapp不是自包含的),这可能与容器到容器或同一容器的版本之间不同(例如,Tomcat在版本之间改变了主意4和5,5和5.5,以及5和6,用于配置“通用”和“共享”库。
如果Web应用程序完全相同,您应该问问自己:您是否应该部署多个?相反,您可以嗅探URL并为每种客户端使用配置,而不是单独部署应用程序。