尝试在 DocumentDB 中插入 200 个文档时出现 RequestRateTooLargeException

RequestRateTooLargeException when trying to insert 200 documents in DocumentDB

我在调用 .createDocument() 以在集合中插入少于 200 个文档时收到以下错误。它通常在第 150 个调用左右开始发生。我正在使用 Node.js SDK。发生这种情况时,数据库上没有其他操作运行。

{ code: 429, body: '{"code":"429","message":"Exception: Microsoft.Azure.Documents.RequestRateTooLargeException, message: {\"Errors\":[\"Request rate is large\"]}, request URI: rntbd://10.100.136.85:14900/apps/1240113d-9858-49b9-90cb-1219f9e1df77/services/itsupportrequests-ServerService-1/partitions/d7253667-671b-4f4e-ac84-a13b7d3dbf5a/replicas/130701880511768464p\r\nActivityId: 5726e6b5-7955-4b39-b306-4903b9f69b36"}' }

当您的访问速率超过允许的配额时,就会发生这种情况。 DocumentDB 每 collection 每秒最多有 2,000 个请求单元。插入是收费的(根据文档的大小和索引术语的数量)。如果您的插入花费 20 个请求单位,则您每秒可以执行 100 次插入。如果一次读取花费 2 个请求单位,则每秒可以读取 1,000 次。

如果超出此范围,您将收到此错误。

解决这个问题的方法是将您的应用程序扩展到多个 collection 中,每个 collection 每秒最多获得 2,000 个请求单元。

当您收到此异常时,您还将收到一个 HTTP header,它会告诉您在重试操作之前要等待多长时间。尊重这个等待期并再次尝试该操作。