我有一个OBJECT
格式的Hazelcast IMap
中的项目,我正在使用一个Jet聚合操作,并将该IMap作为管道源。由于对象格式的原因,我希望在处理过程中避免对IMap中的项进行任何序列化/反序列化,这与原生Hazelcast条目处理和查询的工作方式相同。但是,我可以看到,我的项目实际上正在被序列化,然后在被传递到我的聚合器之前被反序列化。
当以这种方式使用Jet时,是否有可能避免序列化/反序列化步骤?如果是这样的话,是怎么做的?
发布于 2020-08-18 07:11:57
是的,本地地图阅读器将始终序列化/反序列化条目。我能想到的唯一解决方法是使用一个使用map.localKeySet()
的定制源,然后使用mapUsingIMap
对这些键进行联接。源代码将如下所示:
SourceBuilder.batch("localKeys", c -> c.jetInstance().getMap("map"))
.fillBufferFn((map, buf) -> {
for (Object key : map.localKeySet(predicate)) {
buf.add(key);
}
buf.close();
}).distributed(1).build());
https://stackoverflow.com/questions/63463195
复制相似问题