使用Kryo序列化与Gemfire或Geode

问题描述 投票:0回答:2

我希望使用Kryo序列化库(https://github.com/EsotericSoftware/kryo)和Pivotal Gemfire 8.x以上。但是,关于如何做到这一点的信息并不多。如果有人有代码/配置代码片段来展示如何将Kryo序列化与Pivotal Gemfire或Apache Geode集成,这将非常有用。

谢谢。

gemfire kryo geode
2个回答
1
投票

一种选择是将序列化字节存储在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了解更多信息。


0
投票

Gemfire / Geode没有办法替换它自己的几个标准JDK类的序列化,因此我们最终得到了一个混合包,即Kryo和Gemfire DataSerialization。这导致序列化数据的兼容性问题。

我通过使用Kryo序列化程序注册了一些域类来测试,并且它在客户端反序列化期间开始给我提出问题。看看我在issue上的另一个帖子。

我不确定是否有人成功整合了Kryo和Apache Geode / GemFire,但如果你这样做了,请告诉我你是怎么做到的。

© www.soinside.com 2019 - 2024. All rights reserved.