我有 2 个进程需要通过同一台 PC 和不同的 PC 进行通信。在本地情况下,进程通信是在不同进程之间进行的,例如进程 A
和进程 B
。
在远程情况下,它将是在不同 PC 上运行的进程 A
的 2 个实例之一。
我将从头开始创建它们,我想知道什么是最好的方法。我知道 RMI 和套接字,但我想知道我所描述的情况,并且还考虑到交换的消息很小并且 API 的数量真的很少,如果有一个标准的方法/库。
非常欢迎任何建议
@EJP 评论后更新:
我的兴趣是 1) 以轻松的方式实现通信需求,因为公开的 API 和消息都非常小 2) 如果可能,使用和学习一个新的流行框架(我已经知道 RMI 和套接字)
最佳答案
如果您只是在寻找消息传递框架,那么有很多可用的框架,例如
- RabbitMQ - http://www.rabbitmq.com/
- ZeroC 冰 - http://www.zeroc.com/ice.html
- AMQP - http://www.amqp.org
- OpenSplice DDS - http://www.prismtech.com/opensplice
但是当您使用第 3 方框架时,您将向您的应用程序添加额外的依赖项。如果它像您的情况一样非常简单,也许编写 TCP 客户端/服务器对于客户端/服务器范例就足够了,或者如果您正在寻找发布者/订阅者范例,那么您可以考虑使用 UDP 多播。如果您希望能够使用典型的 JAVA 套接字 API 编码和解码数据以缓冲并将其发送到网络,则只需要您的数据类来扩展 Serializable。
关于java - IPC 的 RMI 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273487/