Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jetty web服务器中管理共享库_Java_Tomcat_Jetty_Shared Libraries - Fatal编程技术网

Java 在jetty web服务器中管理共享库

Java 在jetty web服务器中管理共享库,java,tomcat,jetty,shared-libraries,Java,Tomcat,Jetty,Shared Libraries,例如: 我有一个主临时域 www.product.com 对于每个客户端,我需要将单独的子域映射到具有相同端口(80)但具有不同实例名称(不同的.wars文件)的同一服务器 我使用apache服务器作为反向代理映射jetty实例 www.client1.product.com www.client2.product.com www.clientn.product.com 正如我所知,如果我启动jetty实例,每个实例都将从单独的端口号开始 client1 war will start at

例如:

我有一个主临时域

www.product.com
对于每个客户端,我需要将单独的子域映射到具有相同端口(80)但具有不同实例名称(不同的.wars文件)的同一服务器

我使用apache服务器作为反向代理映射jetty实例

www.client1.product.com
www.client2.product.com
www.clientn.product.com
正如我所知,如果我启动jetty实例,每个实例都将从单独的端口号开始

client1 war will start at port 3001
client2 war  will start at port 3002
client3 war will start at port 3003
更新:

为了更好地了解我的体系结构,如果在端口3002上运行的client2 jetty实例由于运行时异常或内存泄漏或手动重新启动而处于关闭状态,则所有其他独立运行的jetty实例(类似于google appengine使用jetty的体系结构)

如果我访问

www.client4.product.com
,我需要让jetty应用程序在3004端口运行

因此,在内部,每个客户端都在具有单独端口号的独特jetty实例下运行

client1 war will start at port 3001
client2 war  will start at port 3002
client3 war will start at port 3003
**我的问题是,所有客户端都使用相同的代码库,但数据库名称不同,所以所有客户端war文件中使用的库都是相同的。**

1)相同的库是否在内存中加载了n次(即n个jetty实例)?


2)如果需要步骤,jetty可以拥有类似于tomcat的共享库文件夹。

每个库分别加载到内存中。同一台机器上的不同JVM进程在加载的类、使用的内存空间等方面彼此不共享任何内容。

请您详细解释一下,与QA相比,您运行的是四个不同的Jetty进程,它们彼此都不了解。没有机会只将.jar加载一次到内存中。为了做到这一点,您必须运行一个Jetty JVM进程,其中包含4个Web应用程序,但将常用的JAR放在通用类加载器中对于这些Web应用程序来说通常是一件痛苦的事情,因为节省几百KB或几MB的RAM不值得为依赖关系头疼。