我正在处理一个系统,该系统为每个客户在其自己的 JVM 中运行一个 Java 应用程序。我们有大约六台专用服务器,现在总共运行着近 100 个 JVM 以及用于管理这些 JVM 的自定义脚本集。这个设置在这一点上确实显示出了它的年龄:管理如此多的 JVM 正在成为监控/管理的噩梦,而且我们不断地处理堆大小问题。我们希望采用更现代的方法,只在每台物理机的单个应用程序服务器中运行一堆应用程序。然而,将应用程序分开确实在隔离方面具有明显的优势(例如,内存不足错误仅影响一个客户)。每个客户的软件堆栈的内存要求差异很大。
我的问题:有没有一种方法可以两全其美,在一个 JVM(应用程序服务器)中运行多个应用程序,同时仍然保持一定程度的隔离?或者,您现在需要管理一组应用程序的内存需求,这只是现代生活中的一个事实吗?除了我在这里缺少的应用程序服务器或 Java EE 容器(例如 Wildfly 或 Spring)之外,还有其他解决方案吗?看来这个系统是另一个时代的遗留物!
检查“多租户”JVM。
IBM 的 JRE 已经有了:http://www.ibm.com/developerworks/library/j-multitenant-java/ http://www.ibm.com/developerworks/library/j-multitenant-java/
Waratek 已在 Oracle JRE 之上实现了它,并且他们创建了 ElastiCat,这是一个 Tomcat 分支,可将不同应用程序隔离在同一容器中:http://www.elasticat.com/faq/ http://www.elasticat.com/faq/
据传多租户也出现在官方 Oracle Java 9 JVM 中。
=================================================== =====
更新:Java 9 已经发布,但 Oracle 没有关于多租户的任何消息。
如今他们似乎更喜欢拥有多个 JVM,甚至多个容器(例如 docker)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)