Enn*_*oji 5 java fault-tolerance native multiprocessing
我有一个我不信任的C库(从某种意义上说,它可能经常崩溃)。我从Java进程中调用它。
为了防止C库崩溃导致整个Java应用程序崩溃。向下,我认为最好是为该库生成一个专用的Java进程,并使其与Java应用程序交互。通过套接字编程或RMI。然后,如果发生崩溃,我可以再生成一个并继续处理。
有ProcessBuilder路要走吗 还是还有其他更简单的方法?
谢谢!
是的,将本机代码托管在单独的 Java 进程中是保护应用程序免受本机代码影响的唯一方法。
至于更简单的方法,只有细微的实现差异。例如,不从 Java 应用程序生成代码,并将本机代码包装在配置为自动启动的本机包装器中。如果您了解 C 和套接字知识,这将简化解决方案。在这种方法中,RMI 并不是最佳选择。
即使你用Java包装本机代码,我仍然不会选择RMI。我在 WAN 上使用 Windows 时遇到了网络问题。如果可能的话,我会保持沟通简单。如果数据太复杂,也许一个基本的序列化库。如果您选择 XML 路线,有几种选择。这是多余的,但您也可以嵌入 http 服务器和 Web 服务层。我不知道你的系统要求,但是
复苏将带来各种挑战。如果它停止响应,您是否会生成另一个进程...您愿意这样做多少次...Java 的进程管理还有很多不足之处。
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |