【发布时间】:2020-12-08 14:59:37
【问题描述】:
我正在使用带有架构注册表的 Azure eventhub。我正在发送一条带有巨大字符串的消息。 该消息具有属性 JsonConent。我正在将 Avro 模式用于具有默认值的可空字符串。 我正在尝试将消息转换为 GenericRecord,当我使用它时,但是当 JsonContent 太大时我有一个错误:Avro.AvroException - 到达流结束。
public async Task ProcessEventHandler(ProcessEventArgs arg)
{
var a = avroSerializer.Deserialize(arg.Data.EventBody.ToStream(), typeof(GenericRecord);
}
I am using Azure.Data.SchemaRegistry.ApacheAvro 1.0.0-beta.1,
Azure.Messaging.EventHubs 5.3.0-beta.4,
Azure.Messaging.EventHubs.Processor 5.3.0-beta.4
【问题讨论】:
-
是否大于 1MB?
-
事件中心客户端和服务将事件主体视为不透明的字节流;两者都不会检查、修改或以其他方式做出推论。此类错误的最可能原因是发布时正文格式不正确。查看您的事件是如何形成和发送的会很有帮助。
-
不,它不大于 1MB。当我发送一个大字符串时,我遇到了这个问题,只有当我使用模式注册表时。也许它来自 Eventhub 的测试版。我减小了字符串大小,现在一切正常。我发现了一个问题,登录到 apache Jira 板,与此错误相关,所以微软可能在他们的 nuget 包中引用了这个版本。
标签: c# azure azure-eventhub