了解 ignite 中的 BinaryObjects
Understanding BinaryObjects in ignite
我有一些数据要以 BinaryObject
格式存储。我正在使用 DataStreamer
将数据放入缓存并使用 StreamReceiver
来处理它们。这是我创建 BinaryObject
:
的方式
String typeName; // Some arbitrary string, does not correspond to any FQCN
BinaryObjectBuilder bldr = ignite.binary().builder();
String key;
//init
IgniteDataStreamer<String, BinaryObject> strmr = ignite.dataStreamer(typeName);
//set receiver
strmr.addData(key, bldr.build());
但是在接收器代码中我有这个:
@Override
public void receive(IgniteCache<String, BinaryObject> cache, Collection<Map.Entry<String, BinaryObject>> entries) throws IgniteException {
String key = entry.getKey();
BinaryObject value = entry.getValue(); //< ----Here is where problems come
//...
}
在 stackTrace 的底部我得到了这个:
java.lang.ClassNotFoundException: Unknown pair [platformId=0, typeId=-462125592]
这是什么意思? ignite 尝试将二进制对象反序列化为某种类型,但没有找到 class byt 我提供的类型名称,我说得对吗?
尝试在向流媒体添加任何数据之前设置 keepBinary
标志:
strmr.keepBinary(true);
我有一些数据要以 BinaryObject
格式存储。我正在使用 DataStreamer
将数据放入缓存并使用 StreamReceiver
来处理它们。这是我创建 BinaryObject
:
String typeName; // Some arbitrary string, does not correspond to any FQCN
BinaryObjectBuilder bldr = ignite.binary().builder();
String key;
//init
IgniteDataStreamer<String, BinaryObject> strmr = ignite.dataStreamer(typeName);
//set receiver
strmr.addData(key, bldr.build());
但是在接收器代码中我有这个:
@Override
public void receive(IgniteCache<String, BinaryObject> cache, Collection<Map.Entry<String, BinaryObject>> entries) throws IgniteException {
String key = entry.getKey();
BinaryObject value = entry.getValue(); //< ----Here is where problems come
//...
}
在 stackTrace 的底部我得到了这个:
java.lang.ClassNotFoundException: Unknown pair [platformId=0, typeId=-462125592]
这是什么意思? ignite 尝试将二进制对象反序列化为某种类型,但没有找到 class byt 我提供的类型名称,我说得对吗?
尝试在向流媒体添加任何数据之前设置 keepBinary
标志:
strmr.keepBinary(true);