私はエントリとしての分散MAPを使用してHazelcastアプリケーションを実装しています。私JsonNodeSerializerしかしHazelcast、Kryo、JsonNodeシリアライザ
private final ObjectReader jsonNodeReader;
private final ObjectWriter jsonNodeWriter;
@Override
public void write(ObjectDataOutput out, JsonNode jsonNode)
throws IOException {
out.write(jsonNodeWriter.writeValueAsBytes(jsonNode));
}
@Override
public JsonNode read(ObjectDataInput in)
throws IOException {
return jsonNodeReader.readTree(in);
}
以下のようにのように見える、私はいくつかのスペースを節約し、パフォーマンスを向上させるためにJsonNodeReader /ライターを使用しないようにKryoを使用していました。
私はKryoを使ってみましたが、引数なしのコンストラクタがないので、JsonNode/ObjectNodeを読み取ることができません。
@Override
public void write(ObjectDataOutput out, JsonNode jsonNode)
throws IOException {
Kryo kryo = KRYO_THREAD_LOCAL.get();
Output output = new Output((OutputStream) out);
kryo.writeObject(output, jsonNode);
output.flush();
//out.write(jsonNodeWriter.writeValueAsBytes(jsonNode));
}
@Trace(dispatcher = true)
@Override
public JsonNode read(ObjectDataInput in)
throws IOException {
InputStream inputStream = (InputStream) in;
Input input = new Input(inputStream);
Kryo kryo = KRYO_THREAD_LOCAL.get();
return kryo.readObject(input, ObjectNode.class);
// return jsonNodeReader.readTree(in);
}
JsonNodeReader/Writerを使用する私のアプローチが最適であるか、Kryoを使用することで解決策が改善されるかどうかはわかりません。
私の目標は、省スペースとパフォーマンスの向上です。 正しい方向に私を置くことをお勧めします。 ありがとう
すべてのあなたの助けには、noctariusありがとうございます。私の事CBORは私の要求に応えることができるでしょう – phoenix