Hazelcast便携式系列化(Hazelcast Portable serialization)

2019-09-28 18:43发布

我想用Portable序列化对象中存储IMap来实现:

  • 快速索引插入期间(无反序列化对象和反射)
  • 类进化(版本)

是否有可能来存储我的类,而实现Portable接口?

是否有可能存储的第三方类,如DateBigDecimal (或嵌套结构),它无法实现Portable接口,同时仍然可转位?

Answer 1:

您可以使用便携式实现快速索引,是的。 您还可以看到,当你在非索引字段查询的好处,因为将没有完全反序列化。 VersionedPortable支持版本,以及,但

  1. 您必须实现便携式接口
  2. 对于不通过便携式支持的类型,则需要将数据转换为支持的格式,对日长如。 而你需要编写串行/解串为每个属性和处理自己的版本。
  3. 便携式只为读是向后兼容的。 如果您更新了应用程序谁拥有以前版本的数据,那么你就失去了一个应用程序以前做新领域的更新具有更高版本的便携式物品的。

所以,要看您的具体要求,你需要选择正确的序列化格式。

如果版本不是那么重要,或者你可以手动处理,但查询性能,然后是便携式有意义。 但是,如果你打算使用版本重,我会建议使用像谷歌协议缓冲区向后/向前兼容的序列化格式。

您可以检查这个例子来得到一个想法: https://github.com/gokhanoner/data-versioning-protobuf



文章来源: Hazelcast Portable serialization
标签: hazelcast