我正在处理一个系统,它在自己的 JVM 中为每个客户运行一个 Java 应用程序。我们现在有大约六台专用服务器,总共运行近 100 个 JVM,以及用于管理这些 JVM 的自定义脚本集。这种设置在这一点上确实显示了它的时代:管理这么多 JVM 正在成为监控/管理的噩梦,我们一直在处理堆大小问题。我们希望采用更现代的方法,只在每台物理机器的单个应用服务器中运行一堆应用程序。但是,将应用程序分开在隔离方面确实具有明显的优势(例如,内存不足错误仅影响一位客户)。每个客户的软件堆栈的内存需求差异很大。
我的问题:有没有一种方法可以两全其美,在一个 JVM(应用服务器)中运行多个应用程序,并且仍然保持一定程度的隔离?或者,如今您需要管理一组应用程序的内存需求只是现代生活中的一个事实?除了我在这里缺少的应用程序服务器或 Java EE 容器(例如 Wildfly 或 Spring)之外,这里还有其他解决方案吗?这个系统似乎是另一个时代的产物!