Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Process 如何将正在运行的Java程序从一台机器迁移到另一台机器?_Process_Jvm_Runtime_Java - Fatal编程技术网

Process 如何将正在运行的Java程序从一台机器迁移到另一台机器?

Process 如何将正在运行的Java程序从一台机器迁移到另一台机器?,process,jvm,runtime,java,Process,Jvm,Runtime,Java,假设我有一个Java程序在机器A上运行,现在我想中断它,保存它的上下文并在机器B上恢复它的执行。有可能吗?如何操作?不,没有好的方法“冻结”进程并在单独的计算机上“恢复”它,进程可能会保持各种状态(打开的文件/套接字等),您无法随它移动 如果您正在编写一个应用程序,那么最好使其群集化,然后在目标计算机上启动另一个节点,等待这两个节点同步并关闭原始节点 如果不是您正在编写的应用程序,或者上面的内容太多,请在虚拟机中运行您的应用程序,并使用虚拟机的功能迁移整个虚拟机,其中包含正在运行的应用程序(因此

假设我有一个Java程序在机器A上运行,现在我想中断它,保存它的上下文并在机器B上恢复它的执行。有可能吗?如何操作?

不,没有好的方法“冻结”进程并在单独的计算机上“恢复”它,进程可能会保持各种状态(打开的文件/套接字等),您无法随它移动

如果您正在编写一个应用程序,那么最好使其群集化,然后在目标计算机上启动另一个节点,等待这两个节点同步并关闭原始节点


如果不是您正在编写的应用程序,或者上面的内容太多,请在虚拟机中运行您的应用程序,并使用虚拟机的功能迁移整个虚拟机,其中包含正在运行的应用程序(因此,只需使用vmotion)。

您可以尝试类似的操作-中断程序的点,只需序列化它的所有属性/对象,并设置一个标志来指示它可以从何处重新开始执行。现在将序列化的内容复制到另一台机器上并启动程序。您的代码应该能够处理正确存储(序列化)程序状态的条件,并在另一台计算机上启动该类时从该点继续运行。

只需将该类文件复制到另一台计算机上即可。通过“迁移”,您到底想做什么?您是否只想复制应用程序(可能需要关闭它)然后在另一台机器上启动拷贝,或者您正在谈论类似vmware vmotion的内容?您好@radai,很抱歉让您一开始就感到困惑。是的,我指的是VMWare VMotion之类的东西。@Sudhanshu这会拯救国家吗?嗨@user93353,thx,我正在读那篇文章。