【问题标题】:Firestore Realtime Updates 1M LimitFirestore 实时更新 1M 限制
【发布时间】:2019-10-03 01:22:20
【问题描述】:

在使用 Firestore 并订阅文档更新时,它规定每个数据库的并发移动/网络连接数限制为 1M。

https://firebase.google.com/docs/firestore/quotas#realtime_updates

这是一个硬限制(在代码中强制/限制)吗?或者它是一个理论上的限制(就像你安全到 1M,然后事情变得冒险)?是否有可能得到提升?

试图了解如何在不需要对数据库进行分片的情况下支持庞大的用户群(这是 Firestore 的优势之一)。即使有 500 万用户,您似乎也会开始遇到问题,因为您可能会遇到超过 20% 的用户同时使用您的应用的时间。

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    您已经注意到,Firestore 中单个文档的最大大小为 1 兆字节。尝试存储可能超出此限制的大量对象(地图)通常被认为是糟糕的设计。

    您应该重新考虑您的应用程序的逻辑,并思考为什么您需要在单个文档中拥有超过 1Mib,而不是每个对象都是它们自己的文档。因此,为了能够使用 Firestore,您应该将保存数据的方式从单个文档中更改为集合。在收藏的情况下,没有限制。您可以根据需要添加任意数量的文档。根据Cloud Firestore Data model的官方文档:

    Cloud Firestore 针对存储大量小文档进行了优化。

    恕我直言,您应该利用此功能。

    有关详细信息,我建议您从 post 中查看我的回答,其中我解释了有关将数据存储在数组(文档)、地图或集合中的一些做法。

    编辑:

    如果没有分片,我担心这不是一种选择。所以在这种情况下,分片肯定会起作用。所以在我看来,这当然是一个合理的选择。

    【讨论】:

    • 谢谢亚历克斯。我实际上是在谈论 1,000,000 个并发移动/网络连接限制。我想知道如何在不分片数据库的情况下支持大量用户,比如 5,000,000+。完全同意设计一个使文档保持相当小的架构。
    • 谢谢亚历克斯。好吧,我的问题是关于连接限制,而您的答案是关于文档大小限制。但是你关于分片的评论很有帮助,所以我会赞成那个:)
    • 刚刚用该评论更新了我的答案,因此您可以对答案而不是评论进行投票。如果我的回答中存在的评论回答了您的问题,您也可以接受。谢谢!
    • 听起来不错,接受您的编辑。我也有点惊讶这是答案。 Beta 期间的大量营销/文档使您看起来不必分片,一切都可以水平扩展。 Firestore 说“为全球规模构建”,特别是 1M 连接限制,它说“仅限测试版”,这意味着在测试版之后,该限制将被取消或提高……然后它就悄悄地变成了“GA 实际”限制.我有没有重新考虑我们的架构以及我们是否应该转向其他东西。
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2019-09-14
    • 2018-06-09
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多