我一直在尝试使用DRb作为跨多个进程通信的解决方案。我使用的是标准进程:一个进程创建一个服务,将其注册到druby uri,另一个进程创建一个引用该URI的DRbObject。到目前一切尚好。假设我杀死了第一个进程。对远程对象的每个后续方法调用都将以ECONNRefused异常结束。这才是公平的。但是,是否有一种方法可以查看DRbObject是否确实注册在给定的URI中呢?我认为通过在每个实例上强制执行ECONNRefused来测试它,以查看它是否存在是有点愚蠢的。
当然,涉及DRb以外的资源的其他解决方案总是受欢迎的,前提是它们确实具有优势。
发布于 2013-04-06 01:29:31
你应该去看看ZeroMQ。它的设置比DRb稍微复杂一些,但它处理所有存在/重新连接的问题大多是透明的。
发布于 2013-10-10 23:15:54
这可能不是您想要的,但是我已经在DRb之上开发了一个IPC框架,它从应用程序级别隐藏了所有的DRb内容。这包括通过网络查找已向服务器注册的任何服务的客户端方法。可能对你来说开销太大了,但也许值得一试。无论如何,你可以在Github上查看。
https://stackoverflow.com/questions/15836130
复制相似问题