我想为Kafka生产者/消费者实现avro序列化器/反序列化器。可以有多个场景
我的问题如何在生产时也发送模式,以便反序列化器读取整个字节并分离实际负载和模式?我正在使用avro生成的类。注意,我不想使用模式注册表。
在任何Avro用例中,您都需要一个读取器和写入器模式,即使它们是相同的。SpeficDatumWriter
(用于序列化器)和SpecficDatumReader
(用于反序列化器)都采用模式。
您可以使用Kafka记录标头对AVSC字符串进行编码,并与有效负载一起发送,但请记住,Kafka记录/批处理的允许大小有上限。使用一些Schema注册表(不必是Confluent的),将开销从整个字符串减少到简单的整数ID。