抗崩溃的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的主要内容,如果未能解决你的问题,请参考以下文章