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