我们有一个Avro模式,并使用它生成了Java模式类。我们正在使用这些类对数据进行序列化和反序列化。
AvroSerializer<T> tSerializer = AvroSerializer.specificInstance(<Schema>);
tSerializer.toByteArray(<data>);
AvroDeSerializer<T> tDeserilizer= AvroDeSerializer.specificInstance(<Schema>);
tDeserilizer.deserialize(bytes2, 0, bytes2.length, false);
当我们停止重复使用二进制编码器时,前后数据会有所不同,我们开始在反序列化后获得正确的数据。
tSerializer.toByteArray(<data>, reuse = false); // This line solved the issue.
谁能告诉我为什么重复使用会导致此问题。
如果我们使用GenericRecord Avro序列化器/反序列化器,则可以正常工作,但不能与架构类一起使用。