这个问题更关注程序的总体设计。我手头有一个问题,一个中心单独与一组客户端通信(客户端不直接相互交互)。
中心与客户之间的通信内容完全是数字的,即来回发送一串数字。客户端在个人计算机上运行,中心可以托管在另一台计算机上(或其他)。在某种意义上,通信风格是迭代和同步的,即中心向每个单独的客户端发送请求/问题消息,并且客户端的用户在每次迭代的时间限制内向中心提供回答/回复,并且这种交互直到最后重复多次。
中心根据客户收到的回复进行一些计算,客户只需提供该计算的输入。
我想知道使用Java这个问题的优雅设计是什么?任何评论或建议都非常感谢。非常感谢。
答案 0 :(得分:1)
我使用KryoNet可以通过RMI调用(远程方法调用)有效地序列化数据集。自己使用它,它运作良好。 UDP和TCP没有任何混乱。从网站上的示例开始,然后从那里开始工作。您可以轻松地使用RMI连接两端。
答案 1 :(得分:0)
声音MPI适合您。这是一个Java version。
祝你好运和问候。
答案 2 :(得分:0)
纯Java中最简单的解决方案可能就是使用RMI。只需通过RMI公开一个对象,让客户端远程调用方法。
如果您想要异步行为,可以使用JMS实现或使用上面提到的套接字和TCP / IP进行滚动。
如果您不喜欢其中任何一种,上面提到的MPI可能适合您。或者Apache Hadoop可能适合您。