1

我正在使用带有 Hazelcast 的地图:

//当我做 :

map.put(gen.newId(), myObject);

myObject 是一个非常复杂的对象,并没有实现 Serializable。

我认为像下面这样放置配置就足以不必实现 serializable :

<map name="myMap">
    <in-memory-format>OBJECT</in-memory-format>   
</map>

Hazelcast 文档说: http: //docs.hazelcast.org/docs/3.5/manual/html/entryprocessor.html “当它被存储为对象(OBJECT 格式)时,条目处理器直接应用于对象。在这种情况下,不执行序列化或反序列化”

感谢您的任何建议。

4

2 回答 2

4

不幸的是,无论内存格式如何,当调用 map.put 时,对象总是会被反序列化。这是因为通常有备份,他们也需要接收副本。所以在这种情况下,你唯一的出路是让你的对象“可序列化”。您可以使用 Java 序列化,但也可以依赖 Kryo 之类的东西来处理复杂的对象图。

于 2015-11-01T21:56:12.543 回答
1

我认为您还可以使用更有效的 hazelcast 特定解决方案。是解决方案的比较表。Portable 一直在为我工作,但对于大型对象的实施和维护来说是一件很痛苦的事情。DataSerializable 是一个更简单的解决方案,看起来很像 Android 中的 Parcelable。

于 2016-04-20T07:42:16.313 回答