如何在Java中有效地在机器之间传输对象

时间:2012-05-04 08:19:05

标签: java serialization

我有2个JVM正在运行,我正在从第一个到第二个复制很多对象,但不是一次性复制。对象图有很多交叉点,所以如果只有一种方法可以发送对象图的缺失部分,那就太好了。我知道我曾经偶然发现了为此而制定的框架,但我不记得这个名字了。你会推荐什么?

4 个答案:

答案 0 :(得分:3)

您需要检测上次发送的数据集的变化并发送指令或如何将复制的数据更改为相同。

执行此操作的一种简单方法是记录原始文件发生的每个更改(使用支持此操作的界面)

您可以将相同的更改推送到第二个实例并“重播”它们以获得相同的结果。

答案 1 :(得分:3)

不确定是否存在仅用于此目的的自定义框架,但是您还有其他几个选项可以将Java对象从一个JVM传输到另一个JVM。其中一些是:

  1. Protocol Buffers

  2. JMS

  3. Simple socket based client/server Java

  4. Thrift

答案 2 :(得分:0)

您可以使用Java远程方法调用(RMI)。它提供远程调用和将可序列化对象传输到另一台机器。当然,您需要一些代码来比较对象图,这可以通过计算对象图的某些部分的散列类型并调用远程对象来将远程图与该散列进行比较来完成。

答案 3 :(得分:0)

你可以试试kryonet。它是一个简单但高效的Java TCP和UDP客户端/服务器库。

https://code.google.com/p/kryonet/