Hazelcast:NotSerializableException

时间:2015-11-01 20:43:53

标签: serialization hazelcast notserializableexception

我正在使用Hazelcast的地图:

//当我这样做时:

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

myObject是一个非常复杂的对象,并不实现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格式)时,则直接在对象上应用条目处理器。在这种情况下,不执行序列化或反序列化”

感谢您的任何建议。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

我认为您还可以使用更有效的榛子特定解决方案。 Here是解决方案的比较表。便携式设备一直在为我工作,但对于大型物体的实施和维护是一件痛苦的事。 DataSerializable是一个更简单的解决方案,看起来很像Android中的Parcelable。