C#.net核心Confluent.Kafka Avro反序列化

时间:2019-11-18 13:02:15

标签: c# apache-kafka avro confluent-schema-registry confluent-kafka

我有一个使用avro生成的类。 avrogen -s customer-v1.avsc。

使用Confluent.Kafka nuget软件包。 我可以序列化CustomerAvro并发送给Kafka Broker。

但是我在反序列化方面遇到问题,因为这是说我没有设置默认的反序列化器。

enter image description here

在这方面有专长的人能帮助我吗? 非常感谢。

2 个答案:

答案 0 :(得分:2)

答案 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 是使反序列化器能够使用适当的架构引用的基础。

Confluent.Kafka.Examples.AvroSpecific