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

C# .net core Confluent.Kafka Avro Deserialization

我使用 class 生成了一个 avro。 avrogen -s 客户-v1.avsc .

使用 Confluent.Kafka nuget 包。 我能够序列化我的 CustomerAvro 并发送给 Kafka Broker。

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

有这方面专业知识的人可以帮助我吗? 非常感谢。

您需要通过构建器指定反序列化器class。例如:https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/examples/AvroSpecific/Program.cs#L84

只是用实际代码添加到以前的回复中,因为提供的link中的行号不再正确

            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