java - 一台服务器上有许多相同的网站

标签 java linux tomcat jvm

<分区>

我有一台服务器(Linux/Apache-Tomcat 和 MySQL),它托管着几个几乎相同的网站。至少,Java 库是相同的。

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

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

我没能找到与这种情况相关的任何信息。

最佳答案

优点:节省了少量磁盘空间和 RAM。请记住,唯一占用的堆空间属于 java.lang.Class 实例,代表您实际从该 JAR 文件加载的类型。

缺点:JVM 中的所有应用程序都被锁定在使用共享库的版本中。如果您真的希望所有已部署的 Web 应用程序都相同,那么这真的没有什么坏处。部署可能会变得棘手,因为您必须维护一个非标准的部署过程(例如,webapp 不是独立的),它可能不同于容器到容器或同一容器的不同版本(例如,Tomcat 在版本之间改变了主意) 4 和 5、5 和 5.5,以及 5 和 6 了解如何配置“公共(public)”和“共享”库。

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

关于java - 一台服务器上有许多相同的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22174710/

相关文章:

php - PHP "remote include"是如何工作的?

java - Spring Controller 是线程安全的吗

java - 如何通过反射获取/设置数组元素?

linux - amr 音频文件的持续时间

Java - 编译并引用一个未知名称的类

c++ - 检测文件是否已更改的可靠方法

tomcat - 添加 Tomcat 部署限制

java - JSP 和 Java Servlet 没有将参数传递给 JSP 文件

java - 是否可以将文本放在按钮中图像的顶部?

java - Spring事务管理: using @Transactional vs using AOP (<aop:advisor)