Hazelcast Jet和Node.JS客户端序列化问题
我有Jet 0.6作为备份,并安装了一些Node.JS进程和hazelcast nodejs客户端0.8.0。我试图从节点过程中推导出一个对象,该对象正好是喷射侧类似对象的反射。然而,我不明白如何确保在Jet方面,这个JS对象将分别被序列化/反序列化。我有一种感觉,我需要向Jet指出,这个JSON对象是数据POJO,应该使用适当的序列化/反序列化 在节点端:Hazelcast Jet和Node.JS客户端序列化问题,node.js,hazelcast,hazelcast-jet,Node.js,Hazelcast,Hazelcast Jet,我有Jet 0.6作为备份,并安装了一些Node.JS进程和hazelcast nodejs客户端0.8.0。我试图从节点过程中推导出一个对象,该对象正好是喷射侧类似对象的反射。然而,我不明白如何确保在Jet方面,这个JS对象将分别被序列化/反序列化。我有一种感觉,我需要向Jet指出,这个JSON对象是数据POJO,应该使用适当的序列化/反序列化 在节点端: var data = { id: someObject.did, // long time: someObject.tim
var data = {
id: someObject.did, // long
time: someObject.time, // long
};
dataMap.put(data.id, data).then(
function () {
console.log("Ok");
},
function (error) {
console.error(error);
}
);
在喷气式飞机方面:
公共类数据实现可序列化{
private long id;
private long time;
public Data(long id, long time) {
this.id = id;
this.time = time;
}
public long getId() {
return id;
}
public long getTime() {
return time;
}
更新:
我设法找到了调用堆栈中的DefaultSerializer.ts
,它显然负责将JS对象转换为数据
实例,然后通过MapProxy
服务发送到缓存:
export class JsonSerializer implements Serializer {
getId(): number {
return -130;
}
read(input: DataInput): any {
return JSON.parse(input.readUTF());
}
write(output: DataOutput, object: any): void {
output.writeUTF(JSON.stringify(object));
}
}
Node.js和Java端都需要正确的序列化配置。但是,
Serializable
是一个仅限Java的接口。因此Hazelcast Node.js客户端无法使用它。
您需要您的对象在两侧实现IdentifiedDataSerializable或Portable
Node.js已识别数据可序列化示例:
Java标识数据可序列化示例:谢谢,我正在研究这个方向,但找不到客户端的
IdentifiedDataSerializable
示例