0

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

4

2 回答 2

1

不,没有什么好的方法可以“冻结”一个进程并在另一台机器上“恢复”它,该进程可能会持有你无法移动的各种状态(打开的文件/套接字等)。

如果它是一个应用程序,您正在编写它以使其可集群化,然后在目标机器上启动另一个节点,等待这两个节点同步并关闭您的原始节点。

如果它不是您正在编写的应用程序或以上内容太多,请在 VM 中运行您的应用程序,并使用 VM 的功能迁移整个 VM 以及其中正在运行的应用程序(因此,只需使用 vmotion)。

于 2013-04-09T04:37:05.997 回答
1

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

于 2013-04-09T04:40:44.670 回答