由于达到 Firestore 限制而扩大规模时

Posted

技术标签:

【中文标题】由于达到 Firestore 限制而扩大规模时【英文标题】:When scaling up due to hitting the Firestore limit 【发布时间】:2021-11-15 11:36:25 【问题描述】:

根据 Google Firebase 文档,Firestore 将支持多达 1,000,000 个同时连接和每个数据库每秒 10,000 次写入。

我知道这很遥远,但是如果那个时候来了怎么办?我一直很好奇

是否可以在 Google Cloud 上进一步扩展?超出这些限制?

【问题讨论】:

【参考方案1】:

正如文档中所述:

Cloud Firestore 不会阻止您超过此软限制,但这样做会极大地影响延迟和错误率。

您可以做的比soft limits 更多,但这会影响数据库性能。如果您的应用程序遇到一些峰值,这是有道理的。您可以通过此link 了解有关限制的更多信息。

如果您的应用在恒定的时间跨度内需要这样的容量,您可以为每个区域或其他分组标准创建多个项目。您可以在同一个应用中初始化多个 Firebase 项目以使用它们。

如果您使用实时数据库,您甚至可以在一个项目中创建多个。不幸的是,Firestore 不支持单个项目中的多个数据库。

当涉及到如此大量的连接时,您是否应该扩展 Firebase 的使用,甚至迁移到具有更大可扩展性的另一个 GCP 解决方案(或其他提供商),很大程度上取决于不同的用例。

关于每秒 10,000 次写入的限制,您可以参考此 *** answer,它解释了如果您认为每秒可能产生比 Firestore 允许的更多持续写入,您必须做什么

【讨论】:

据我了解,如果规模真的扩大,有两种方法,一种是创建几个firestore项目,另一种是移动到rds? 要么到多个实时数据库,要么到其他 GCP(谷歌云平台)服务。您可以使用 GCP 来托管您自己的服务器、数据库等。

以上是关于由于达到 Firestore 限制而扩大规模时的主要内容,如果未能解决你的问题,请参考以下文章

大规模时间敏感软件的内存分析

使用 StreamBuilder 而不是 FeatureBuilder 来避免 Firestore 中的 whereIn 10 限制

MongoDB分页获取数据排序阶段缓存溢出问题

大规模 Transformer 模型 8 比特矩阵乘简介

大规模的一对多性能

Scala如何驾驭大规模系统?