Cosmos DB Emulator通过表API执行分段查询传递延续令牌时挂起问题
故障原因
这是Cosmos DB仿真器在Tables API模式下的已知缺陷,仿真器的分区配额校验逻辑对Tables API无限制表的统计规则异常,超限创建时没有触发预期的「配额不足」错误提示,反而会进入无响应或卡顿的异常状态。
默认规则下每个无限制容器占用5个分区配额的统计逻辑仅适用于SQL API,Tables API的无限制表实际会占用10个分区配额,你设置PartitionCount=50时最多仅支持创建5个无限制表,创建第6个时就会触发异常。
可行解决方案
- 完全重置仿真器状态:关闭仿真器后删除
%LOCALAPPDATA%\CosmosDBEmulator目录下的所有文件,再以管理员身份运行命令行执行CosmosDB.Emulator.exe /ResetData,彻底清理残留的元数据。 - 调整启动分区配额:如果需要创建10个无限制表,将启动参数修改为
/EnableTableEndpoint /PartitionCount=100即可匹配你需要的容量。 - 改用有限制容器:如果暂时不需要大量无限制表,创建表时指定1000RU/s及以下的固定吞吐量,创建为有限制容器,这类容器单表仅占用1个分区配额,
PartitionCount=50配置下最多可创建50个,不会触发超限异常。 - 关闭仿真器速率限制:启动时额外添加
/DisableRateLimiting参数,可完全屏蔽仿真器的RU限流逻辑,避免误触发429 Too Many Requests重试。
内容的提问来源于stack exchange,提问作者Luke Puplett
相关产品推荐
相关产品推荐

