You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

并行化Cosmos DB Table请求时出现停滞问题求助

并行调用Azure Cosmos DB Table API时的请求停滞与超时问题

当我并行发起大量操作时,这些操作经常会超时或者失败。我当前用的技术栈是这些:

  • Azure Cosmos DB Table API
  • .NET Core 2.0 控制台应用
  • WindowsAzure.Storage(9.2.0)NuGet包
  • 采用标准配置:CloudStorageAccount.Parse(...).CreateCloudTableClient().GetTableReference("...")

这段代码会触发8999个任务,每个任务都是指定了PartitionKey和RowKey的TableOperation.Retrieve操作。我特意加了代码来跟踪任务完成状态以及IRetryPolicy的触发情况,全程没有出现429错误。

下面是最近一次运行的输出:

await Task.WhenAll(stuff.Select(x => table.ExecuteAsync(opGetter.Get(x))));
0:01 - 12 done
0:02 - 228 done
0:03 - 313 done
0:04 - 435 done
0:05 - 1010 done
0:06 - 1883 done
0:07 - 2833 done
0:08 - 3014 done
0:09 - 3878 done
0:10 - 5447 done
0:11 - 5569 done
0:12 - 6492 done
0:13 - 6527 done
0:14 - 6532 done
0:15 - 6541 done
0:16 - 6543 done
0:17 - 6547 done
0:18 - 6552 done
0:19 - 6554 done
0:20 - 6951 done
0:21 - 8105 done
0:22 - 8128 done
0:23 - 8591 done
0:24 - 8907 done
0:25 - 8908 done
0:29 - 8994 done
0:32 - 8996 done
1:14 - 8997 done
2:26 - 8998 done
5:02 - StatusCode: 0 "An error occurred while sending the request."
5:05 - All 8999 Done

(有时候还会出现客户端超时错误,甚至多个错误)

理想状态下,这8999次检索操作应该只需要几秒就能完成。到底该怎么解决这种停滞问题?

补充几个关键情况:

  • 我没有修改过max connections这类ServicePoint设置
  • 因为没有支持.NET Core或Standard的Cosmos DB Table API SDK,没法用“Direct Mode”或“TCP”模式,只能用Gateway/Https
  • 我怀疑问题出在客户端这边
  • 程序运行在本地服务器,不是Azure环境
  • 这不是偶然现象,只要发起大批次请求,几乎每次都会出现这种情况

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:46:10