5

我很好奇 Azure Functions 上的缩放与输出到 Document DB 的关系如何。

基本上,当 Document DB 因为超出分配的吞吐量而返回 429 时会发生什么?我问是因为当我将最低级别的 Azure Functions 与最低级别的 Document DB 相结合并在 20 秒内继续调用该函数 1000 次时,我只看到 700-800 个实际文档插入到我的文档数据库集合中。当我再次将 Document DB 扩展到具有相同最低功能级别的最大值时,我的 doc db 集合中只收到了 700-800 个文档。但是,当我将函数缩放到最大值,文档数据库为最大值时,我得到了全部 1000。当我将文档数据库降到最小值时,我只得到了 300ish....虽然看起来我已经锁定了文档db 帐户,并且它仍在重试插入,直到它可以成功。

所以我只是对这是缩放感到困惑,如果我能得到一些见解,那么我可以更好地调整功能或应用程序的各个方面。

4

1 回答 1

6

是的,它目前确实在 429 上重试,根据 DocDB 响应等待建议的时间量。目前没有绝对超时,因此重试将继续,直到它们通过(如果这是预期的行为,我现在正在仔细检查)。

在您的第一个场景中,如果您等待足够长的时间让油门被移除,那么所有 1000 最终都会出现吗?

我想尝试复制这个——在启用你的功能之前,你是否在队列中放置了 1000 个项目?还是以其他方式称呼它?

如果您好奇,正在运行的特定重试代码在这里: https ://github.com/Azure/azure-webjobs-sdk-extensions/blob/master/src/WebJobs.Extensions.DocumentDB/DocumentDBUtility.cs#L36

于 2016-04-06T20:02:32.887 回答