请教banq及各位老师一个问题

08-05-13 bloodrate

能否让一个虚拟机实例里的运行的应用程序所调用的类运行在另一个虚拟机实例里?

《深入JAVA虚拟机》一书中介绍,每一个JAVA应用程序都创建一个虚拟机实例,并运行在这个实例里,通过给虚拟机实例配置xmx改变堆内存大小。我突然想到,能否让一个虚拟机实例里的运行的应用程序所调用的类运行在另一个虚拟机实例里?
这个很有现实意义,用处最大就在J2EE缓存,大家都知道应用服务器给JVM分配的堆内存不可能无限制涨大,例如到2G后就无法再大,可是服务器可能有8G内存,另外6G浪费了?(如果再跑其他应用恐CPU不够,跑单机集群就是利用另外6G内存再装3个应用服务器),我在想,2G已经很小了,能不能将缓存这样的“有了更好,没有也没事”的东西让其运行在另一个虚拟机实例里(占用另外6G内存空间),而不与2G的核心数据存储争抢空间。如果说之前调用缓存管理器 CacheManager.getInstance()。。。这样的话,换成Runtime.exec("CacheManager.jar");......是不是相当于将其运行在另一个JVM中?

banq
2008-05-14 07:04

想法很好,使用RMI就可以,RMI好像是两个JVM之间的隧道。

http://www.jdon.com/jivejdon/thread/33860.html