我希望使用Kryo序列化库(https://github.com/EsotericSoftware/kryo)和Pivotal Gemfire 8.x以上。但是,关于如何做到这一点的信息并不多。如果有人有代码/配置代码片段来展示如何将Kryo序列化与Pivotal Gemfire或Apache Geode集成,这将非常有用。
谢谢。
一种选择是将序列化字节存储在geode区域中,例如
byte[] bytes = serializeWithKyro(myObject)
region.put("key", bytes)
另一个选择是注册可以与Kyro序列化的DataSerializer:
DataSerializer.register(KyroSerializer.class)
public class KyroSerializer extends DataSerializer {
public boolean toData(Object o, DataOutput out) {
if(!(o instanceof MyClass)) {
return false;
}
writeWithKyro(o, out);
}
...
}
您可以查看DataSerializer javadocs了解更多信息。
Gemfire / Geode没有办法替换它自己的几个标准JDK类的序列化,因此我们最终得到了一个混合包,即Kryo和Gemfire DataSerialization。这导致序列化数据的兼容性问题。
我通过使用Kryo序列化程序注册了一些域类来测试,并且它在客户端反序列化期间开始给我提出问题。看看我在issue上的另一个帖子。
我不确定是否有人成功整合了Kryo和Apache Geode / GemFire,但如果你这样做了,请告诉我你是怎么做到的。