一尘不染

多个JVM与单个应用程序服务器

java

我正在处理一个系统,该系统在其自己的JVM中为每个客户运行Java应用程序。现在,我们有大约六个专用服务器,它们总共运行近100个JVM,以及用于管理这些JVM的自定义脚本集。此设置实际上已经表明了它的年龄:管理许多JVM已成为监视/管理的噩梦,并且我们一直在处理堆大小调整问题。我们想采用一种更现代的方法,并在每台物理计算机的单个应用服务器中运行一堆应用程序。但是,将应用程序保持隔离确实在隔离方面具有明显的优势(例如,内存不足错误仅影响一位客户)。每个客户的软件堆栈对内存的要求差异很大。

我的问题:有没有办法在这两个方面都做到最好,并在一台JVM(应用服务器)中运行多个应用程序,并且仍然保持一定程度的隔离?还是这几天您需要管理一组应用程序的内存需求仅仅是现代生活中的事实?除了我想在这里找到的应用服务器或Java
EE容器(例如Wildfly或Spring)以外,还有其他解决方案吗?看来这个系统是另一个时代的坚持!


阅读 341

收藏
2020-12-03

共1个答案

一尘不染

签出“多租户” JVM。

IBM的JRE已经拥有它:http : //www.ibm.com/developerworks/library/j-multitenant-
java/

Waratek在Oracle
JRE之上实现了它,并创建了ElastiCat,这是一个Tomcat分支,可将同一容器中的不同应用程序隔离开:http
://www.elasticat.com/faq/

据传多租户也将出现在官方的Oracle Java 9 JVM中。

================================================== =====

更新:Java 9已经发布,但是Oracle没有关于多租户的消息。看来他们最近更喜欢拥有多个JVM,甚至拥有多个Container(例如docker)。

2020-12-03