抗崩溃的Java IPC

Posted

技术标签:

【中文标题】抗崩溃的Java IPC【英文标题】:Crash-resistant Java IPC 【发布时间】:2011-04-27 07:30:26 【问题描述】:

我有一个 Java 程序,它依赖于一个随机崩溃的本地库(因此导致整个 JVM 崩溃)。 这个库是关于 I/O 的,因此可以通过第二个 JVM 轻松地与程序的其余部分隔离。 我想把程序一分为二,让主程序继续运行,但是崩溃后可以重新启动本机库。问题是:让这 2 个 JVM 通信的最佳方式是什么?其中一个将崩溃并重新启动,但这不应该影响另一个 JVM(除了由于崩溃和重新启动而导致的 I/O 超时)。 RMI 是否抗碰撞?我应该使用插座吗?内存映射文件?

【问题讨论】:

不能修复崩溃代码吗? 【参考方案1】:

我会在进程之间使用一个持久的 JMS 队列。这将是最抗碰撞的。 (修复库是最好的选择)

【讨论】:

修复崩溃的原生库的另一种方法是放弃它并用纯 Java 重写它。 @Stephen 不幸的是,这不是一个选项。

以上是关于抗崩溃的Java IPC的主要内容,如果未能解决你的问题,请参考以下文章

如何链接 2 个进程,以便当一个进程崩溃时另一个进程也崩溃?

Java 程序会崩溃吗?

编写Java代码使java虚拟机崩溃

Eclipse CDT 崩溃 java

IPC消息队列溢出后果

java的崩溃报告