【问题标题】:How to prevent throttling with Firestore when executing high amount of reads?执行大量读取时如何防止使用 Firestore 进行节流?
【发布时间】:2019-11-29 07:48:22
【问题描述】:

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

错误:8 RESOURCE_EXHAUSTED:超出配额。

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

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

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

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    您似乎已达到this page 中所述的读取/写入/事务限制之一。

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

    【讨论】:

    • 我在发帖之前查看过,我在阅读和写作方面都陷入了困境。我完全被锁定了。我每秒最多只能写 100 个文档。我尝试向 Google 开票,但它要求我注册一个组织。
    • 是的,但您限制为每个文档每秒写入一次。请求中有重叠会导致同时保存同一个文档吗?
    • 对创建新文档的集合进行了 100 次写入。没有重叠,我相信这是由过度读取触发的。当时我并没有太多地写入数据库。
    【解决方案2】:

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

    对于 Blaze 计划 项目,Cloud Firestore 文档读取的限制为 50K/天,因为 Spark 计划的免费使用包含在 Blaze 计划中。限制是这样的,除非你有set any budget limit in your Billing account。使用量将在太平洋标准时间午夜重置。如果您将计划升级到 Flame 计划,则限制为 250K/天。

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

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

    如果您想避免计费帐户出现意外费用,一个好的做法是根据 Cloud Firestore 指标发送至create an alerting policy,如此处所述。

    此外,您可以使用此Blaze Plan calculator 估算和验证“Blaze 计划”的每月费用。

    【讨论】:

    • 我在发布之前已经浏览了这些文件。我不是 Spark 计划用户。这些限制都不适用于我。我已经评估了我的配额以及我没有达到任何限制的方式。
    • 我为我的拼写错误道歉。我编辑了我的答案:“对于 Blaze 计划项目,Cloud Firestore 文档读取的限制为 50K/天,因为 Spark 计划的免费使用包含在 Blaze 计划中。”
    • 您每天可以阅读超过 50k 次,超过该次数后才会收费。我相信我的问题是一个 IP 发出了太多请求。
    【解决方案3】:

    对于以后遇到此问题的任何人,请在“应用程序设置”下检查您的 App Engine 预算设置。我设置了每日支出限额,以避免在测试期间产生不必要的费用,但我没想到。我增加了预算,目前错误已消失。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2021-05-22
      • 2011-09-09
      • 1970-01-01
      相关资源
      最近更新 更多