早上好 。
如果克隆现有的 Linux 机器以创建它的另一个实例,
它会有相同的JVM实例吗?
我问这个问题是因为当我们通过 Linux 脚本进行生产部署时,它会创建 5 次代码战争并将它们部署到 5 个 Jetty Web 服务器实例中,我观察到代码共享相同的 JVM?
这怎么可能??
我正在使用 Jetty 8 并且拥有 Jetty 服务器的机器是 Ubuntu 。
早上好 。
如果克隆现有的 Linux 机器以创建它的另一个实例,
它会有相同的JVM实例吗?
我问这个问题是因为当我们通过 Linux 脚本进行生产部署时,它会创建 5 次代码战争并将它们部署到 5 个 Jetty Web 服务器实例中,我观察到代码共享相同的 JVM?
这怎么可能??
我正在使用 Jetty 8 并且拥有 Jetty 服务器的机器是 Ubuntu 。
不同的物理(或虚拟)机器会有不同的jvm
然而,可以将多个战争部署到一个码头实例中,并让所有这些 webapps 在 on jvm 中运行
也可以使用 jetty 在同一个 jvm 内启动多个 jetty 服务器
但是 jvm 只是操作系统的进程,并且 5 个不同的 linux 安装实例不会在它们之间共享 jvm
Java 5 有一个称为类数据共享的内部特性。您可以手动创建转储并使用它们。这个stackoverflow答案可能会有所帮助。如果你想提高启动时间,你可以使用nailgun。Nailgun 是一个 JVM 服务器,用于从命令行运行 Java 程序,而不会产生 JVM 启动开销。