繁体   English   中英

执行大量读取时如何防止 Firestore 节流?

[英]How to prevent throttling with Firestore when executing high amount of reads?

我是 Google blaze plan 用户,我有一个快速服务器,其中包含一个简单的端点,该端点仅从 firestore 中提取。 在高流量时段,我可以同时检索 5000 多个读取请求,最终会在下面抛出此错误,

错误:8 RESOURCE_EXHAUSTED:超出配额。

等了几分钟后,我可以再次阅读该合集。

更新:不确定为什么在没有任何解释的情况下投票。但我也有一个 Mutex 系统,我认为它可能会导致达到这些限制。 如果无法使用事务锁定文档,它会向下移动一组快照,直到给出锁定。 如果数组变空,它会再次读取 firebase 以获取另一组 N 个文档,在我的例子中只有 50 个。

所以我的问题是,我们允许从单个连接(我的快速服务器)进行的每秒事务量或读取量是否有限制? 我不认为它在文件中的任何地方都有说明。

您似乎达到了本页中所述的读/写/事务限制之一。

可能是这个Maximum writes per second per database: 10,000 (up to 10 MiB per second)但我只是猜测......

要回答您的问题,根据链接,每个 Firebase 数据库的移动/网络客户端的最大并发连接数为 1,000,000。 因此,您的连接似乎没有超过限制。

对于Blaze Plan项目,Cloud Firestore Document Read 的限制是50K/day ,因为 Spark Plan 的免费使用量包含在 Blaze Plan 中。 限制是这样的,除非您在您的 Billing account 中设置了任何预算限制 使用情况将在太平洋标准时间午夜重置。 如果您将计划升级到 Flame 计划,则限制为 250K/天。

在这里,您可以阅读有关官方 Cloud Firestore 配额和限制的信息,例如最大文档读取数、文档的最大大小,这些可能很有用。 此外,您可以监控您的数据库使用情况并从 Firebase 控制台的“使用情况”选项卡检查您的计划限制。 您可以查看当前计费周期、过去 30 天或过去 24 小时的使用情况。

Stackdriver Monitoring也是一个实用的工具,用于监控文档读/写/删除、活动连接和快照监听器。

如果您想避免对您的计费帐户产生意外费用,一个好的做法是根据 Cloud Firestore 指标创建警报策略,如此处所述。

此外,您可以使用此Blaze Plan 计算器估算和验证“Blaze Plan”的每月成本。

对于将来遇到此问题的任何人,请检查“应用程序设置”下的 App Engine 预算设置。 我设置了每日支出限额以避免在测试期间产生不必要的费用,但我忘记了这一点。 我增加了预算,现在错误消失了。

当超出我的预算时,AWS 通常会向我发送一封电子邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM