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不值得为依赖关系头疼。