【问题标题】:Clarify the Firebase connections澄清 Firebase 连接
【发布时间】:2014-01-30 22:44:52
【问题描述】:

我对 Firebase 定价模型有点困惑,特别关注的是连接或更准确地说是并发连接。

让我们举一个名为 FanZONE 的 iOS 移动应用示例:

用户将在足球比赛期间创建群组。他们将对实际游戏进行评论,并且cmets立即显示在每个成员的屏幕上。

这种情况是否意味着参与评论/查看的每个用户都算作一个连接?
那么,如果一个组包含 100 个积极关注屏幕并不时发表评论的用户,那么每 90 分钟有 100 个连接吗?
那些在后台拥有应用程序并且应用程序每 5 分钟检查一次分数的用户呢?这种连接也是 90 分钟长还是每 5 分钟只有一小部分时间?

【问题讨论】:

  • 正如我在 docs 现在的实时数据库中所读到的:“在单个数据库中扩展到大约 200,000 个并发连接和 1,000 次写入/秒。超出此范围需要将数据分片到多个数据库中。”

标签: android ios firebase


【解决方案1】:

除了 Mike P 的出色回答之外,这里还有一些关于同一主题的其他讨论,这些讨论可能会很有见地。

来自 Firebase pricing page

什么是连接?

连接是与我们服务器的开放网络连接。它是 衡量正在使用您的应用或网站的用户数量 同时地。这与(通常要低得多)不同 比)您网站的访问者总数或 您的应用程序的用户。根据我们的经验,1 个并发对应于 每月大约 1,400 次访问。

我们的开发 Firebase 对连接数有硬性限制 允许。然而,所有付费的 Firebase 都是“可爆发的”,这 表示使用量没有上限,而您需要为任何超额付费。 我们根据第 95 个百分位来衡量付费计划的连接 当月的使用量。

来自this mailing list discussion,作者:Andrew Lee(Firebase 创始人):

我强烈建议你不要担心,除非你真的 突破我们的极限......大多数开发人员大大高估了 他们将拥有的并发用户。一个好的经验法则是 1 个并发 = 典型网站的每月访问量为 1000 次。对于移动设备,安装量和并发量之间的比率有时甚至更高(尽管它 根据您的用例而有很大差异)。我们的计划相当 在并发用户方面慷慨。作为数据点——我们自己的 网站可以在“免费”的 Firebase 计划上最舒适地运行 天。事实上,超过 99.5% 的 Firebase 从未达到 50 并发限制。

所以,长话短说,如果你正在从事一个爱好项目,你会 几乎可以肯定不会达到我们的免费层 50 并发限制。如果你是 一个企业或一个更大的应用程序,我希望你能找到我们 49 美元/月的计划 比花费工程时间来确定何时更划算 goOnline / goOffline 以最小化该数字。

在非常高端(具有 10k+ 并发的大型企业应用程序)我们 确实提供具有较低每并发率的自定义定价。

SO 上的用户基准测试和连接测试:How the Connection is calculated in Firebase

关于 SO 的另一个类似问题:How are concurrent connections calculated

【讨论】:

  • Firebase 自 2016 年 5 月 18 日起更新其定价模型。现在它有 3 个计划 Spark、Flame 和 Blaze。 Spark 是免费的,Flame 是 25 美元/月(用于可预测的定价)和 Blaze(即用即付)。查看新的定价模型firebase.google.com/pricing
  • +1 表示并发与总安装/访问场景。没有示例编号很难估计。
  • 有人可以澄清一下:“同时连接”到底是什么意思?是一次登录的并发用户,还是每个用户在给定时间打开的订阅。例如,假设用户访问我的应用并打开一个页面,在该页面上,有 5 个订阅处于打开状态,直到用户离开该页面。这会算作 5 个同时连接还是 1 个。每个用户的订阅数或应用内并发用户数?
  • 请参阅FAQ 回复:“同时连接”。它是与服务器的打开连接数。
  • 我的应用最多同时拥有 150 个用户,但使用图表仍然显示达到了 100 个限制。我的应用每天使用一次单值侦听器。我不明白这个文档怎么可能是真实的
【解决方案2】:

在您的第一个场景中 - 简短的回答是肯定的。只要您的用户将屏幕保持在您拥有允许他们评论/阅读 cmets 的 Firebase 连接的位置 - 您将在每个屏幕上拥有一个并发连接。

在您的第二种情况下 - 这取决于您开发应用的方式。 Firebase API 确实为您提供了 goOfflinegoOnline 方法 (https://www.firebase.com/docs/ios-api/Classes/Firebase.html#class_methods),让您可以控制连接。如果你想离线 5 分钟,然后短暂返回在线查看分数,然后再次离线,那么你只能保持短暂的连接。

并发连接就是这样 - 同时建立的连接。因此,如果您有 3 个人使用您的应用查看分数,但用户 1 的应用在下午 12:00 上线并且连接持续 5 秒,那么用户 2 的应用在下午 12:01 上线 5 秒,用户 3 的应用在下午 12:01 上线 5 秒应用程序在下午 12:02 上线 5 秒,然后您只有 1 个并发连接。

另一方面,如果所有 3 个用户的应用在下午 12:00 上线 5 秒,那么您将有 3 个并发连接。

您可能会在第一个场景中使用相同的 goOffline/goOnline 策略,但如果您的用户期望近乎实时地谈论游戏,这可能会降低体验。

【讨论】:

  • 谢谢,这几乎解决了我的大部分问题。 goOffline goOnline 可用于大多数场景,为更大的用户群保存连接。
  • 不愿意偏离主题,我想这意味着 firebase 是基于套接字的(而不是基于 AJAX)?
  • 模拟器上只有我一个人,它显示我有 8 个连接。怎么会?
  • 出色的技术解释了使用 Firebase 免费计划的 100 多个连接!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 2017-06-03
  • 2010-12-30
  • 2014-07-23
  • 1970-01-01
  • 2016-11-09
相关资源
最近更新 更多