我正在程序中进行跟踪。 1.消费RabbitMQ的消息(字节)。 AVRO格式用于序列化数据,然后在队列上生成。 2.使用完后,请使用反序列化方法在AVRO生成的Java对象中反序列化。
public T deserialize(String pTopic, byte[] pData) {
T lResult = null;
if (pData != null) {
DatumReader<GenericRecord> lDatumReader = new SpecificDatumReader<>(targetType.newInstance().getSchema());
Decoder lDecoder = DecoderFactory.get().binaryDecoder(pData, null);
lResult = (T) lDatumReader.read(null, lDecoder);
}
return lResult;
}
当我双方都有相同的架构时,它工作正常。如果生产者端发生更改,请添加/删除某些字段或属性,则无法反序列化并引发异常。
在消费者方面,有什么方法可以忽略模式中/的更改吗? 我的旧架构足以应付我的处理。
预先感谢