我有一个使用avro生成的类。 avrogen -s customer-v1.avsc。
使用Confluent.Kafka nuget软件包。 我可以序列化CustomerAvro并发送给Kafka Broker。
但是我在反序列化方面遇到问题,因为这是说我没有设置默认的反序列化器。
在这方面有专长的人能帮助我吗? 非常感谢。
答案 0 :(得分:2)
您需要通过builder类指定反序列化器。例如:https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/examples/AvroSpecific/Program.cs#L84
答案 1 :(得分:0)
只是将实际代码添加到之前的回复中,因为提供的链接中的行号不再正确
using (var schemaRegistry = new CachedSchemaRegistryClient(schemaRegistryConfig))
using (var consumer =
new ConsumerBuilder<string, User>(consumerConfig)
.SetKeyDeserializer(new AvroDeserializer<string>(schemaRegistry).AsSyncOverAsync())
.SetValueDeserializer(new AvroDeserializer<User>(schemaRegistry).AsSyncOverAsync())
.SetErrorHandler((_, e) => Console.WriteLine($"Error: {e.Reason}"))
.Build())
初始 schemaRegistry 是使反序列化器能够使用适当的架构引用的基础。