gpt4 book ai didi

azureservicebus - 超出了 Azure 服务总线 SDK 的 SendBatch() 方法上的链接异常当前允许的限制(262144 字节)

转载 作者:行者123 更新时间:2023-12-04 01:55:07 26 4
gpt4 key购买 nike

我们使用 Azure 服务总线 SDK 3.1.7 的 SendBatch() 方法将数据发送到 Azure 事件中心。以下是代码片段:

foreach (var packet in transformedPackets)
{
EventData eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(packet, settings)));;
try
{
eventData.Properties.Add(AppConstants.TenantDeploymentUniqueIdKey, tenantDeploymentUniqueId);
eventData.Properties.Add(AppConstants.DataTypeKey, DataTypeKey);
byteCount += eventData.SerializedSizeInBytes;
if (byteCount > MaxBatchSize)
{
sender.SendBatch(transformedMessages);
transformedMessages.Clear();
byteCount = eventData.SerializedSizeInBytes;
}
transformedMessages.Add(eventData);
}
catch (System.Exception)
{
eventData.Dispose();
throw;
}

}

在将事件数据添加到批处理之前检查 SerializedSizeInBytes 属性后的事件(最大允许限制:256 KB),我们收到以下异常:

接收到的消息(delivery-id:0,大小:262279 字节)超过了当前链路上允许的限制(262144 字节)。
在 Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(异常异常)
在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult 结果)
在 Microsoft.ServiceBus.Common.AsyncResult 1.End(IAsyncResult asyncResult)
at Microsoft.ServiceBus.Messaging.MessageSender.RetrySenderEventDataAsyncResult.End(IAsyncResult r)
at Microsoft.ServiceBus.Messaging.MessageSender.EndSendEventData(IAsyncResult result)
at Microsoft.ServiceBus.Messaging.EventHubSender.SendBatch(IEnumerable
1 eventDataList)

最佳答案

当事件被翻译成单个 AmqpMessage 时,一些额外的信息被添加到批处理头中。

确保所有 EventData 的总大小低于 250k。

您可以在此处找到有关此问题的详细信息:How to use client-side event batching functionality while Sending to Microsoft Azure EventHubs

关于azureservicebus - 超出了 Azure 服务总线 SDK 的 SendBatch() 方法上的链接异常当前允许的限制(262144 字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37044878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com