我使用 gemfire 作为我的缓存。缓存堆大小远高于 100GB。我发现当我们从客户端将数据放入 gemfire 缓存中时,它会将数据序列化并发送到服务器,并且在服务器上数据以序列化的形式存储。问题:
- 当我尝试执行任何服务器上的函数调用时,它会开始反序列化数据,这确实非常耗时,有时仅遍历缓存中的对象就需要一个多小时。(对象数量接近 600 万)。
- 我尝试使用 gemfire 自定义序列化(DataSerializer 类)。所有数据都在缓存中后所需的内存量约为 60GB,如果我要使用 Java 默认序列化,则它是相同的。
- 我尝试使用一个名为 Kryo https://github.com/EsotericSoftware/kryo的库,这确实有很大帮助,但我仍然不明白为什么 gemfire 序列化对我没有帮助,因为我正在单独序列化类的每个属性所以编写类头和任何其他元数据不应该有任何负担。
任何帮助将非常感激。