gpt4 book ai didi

c# - Azure 队列限制错误,请求很少(StorageException : The server is busy)

转载 作者:行者123 更新时间:2023-12-03 03:07:07 25 4
gpt4 key购买 nike

  • 语言:C#

  • 框架:.NET CORE 1.1.1

  • Nuget:WindowsAzure.Storage 版本 8.1.1

嗨,

我在 Azure 上使用队列存储。我有 4 个程序,每个程序每秒发出 1 个请求(GetMessagesAsync 请求)。所以我每秒发出 4 个请求。

但有时,会出现导致此异常的限制错误:

System.AggregateException: One or more errors occurred. (The server is busy.) ---> Microsoft.WindowsAzure.Storage.StorageException: The server is busy.\r\n at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__4`1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.WindowsAzure.Storage.Queue.CloudQueue.<>c__DisplayClass83_0.<b__0>d.MoveNext()\r\n

鉴于单个队列的 Azure 目标吞吐量高达每秒 2000 条消息,我不知道为什么会收到此错误。

其他信息:

  • 我的消息是小型 json 文件(1ko 大小)
  • 我检查了我的 Azure 门户,7 天内我的程序发出了 220 万个请求(约 3.6 个请求/秒)
  • 当我收到“服务器正忙”异常时,我的 Azure 门户中也会出现限制错误

我进行获取的函数:

protected async Task<IEnumerable<CloudQueueMessage>> GetAndDequeueMessagesAsync(int numberOfMessagesToRetrived = 1) {
try
{
IEnumerable<CloudQueueMessage> messages = await GetMessagesAsync(numberOfMessagesToRetrived);
foreach (CloudQueueMessage queueMessage in messages)
{
await DequeueMessageAsync(queueMessage);
}
return messages;
}
catch (Exception e)
{
return new List<CloudQueueMessage>();
}
}

谢谢

最佳答案

根据您的描述,我猜测原因是存储服务移动分区以提高负载平衡。

据我所知,azure存储分区服务器不仅仅托管一个分区(队列\表分区键),它还会托管许多分区。

如果分区服务器收到太多请求,Azure存储将自动改善负载平衡。

它将把一些分区移动到另一个分区服务器。如果在移动分区时发送reqeust,将会返回503错误。

有关 Azure 存储如何改进负载平衡的更多详细信息。你可以引用这个azure storage SOSP article's 5.5.1 Load Balance Operation Details .

我建议您可以使用存储客户端库实现重试策略,以保持程序正常运行。

更多详细信息,您可以引用以下文章: Microsoft.WindowsAzure.Storage.RetryPolicies Namespace

关于c# - Azure 队列限制错误,请求很少(StorageException : The server is busy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467238/

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