FCM 将推送通知发送到大基数的主题需要多长时间

Sau*_*abh 8 android push-notification firebase firebase-cloud-messaging

我们计划通过 FCM实施Topic Messaging以将 PN 发送到我们的基地,我想知道 FCM 通过主题将 PN 发送到应用程序需要多长时间:

  1. 有 1000 万人订阅了一个主题
  2. 有 5000 万人订阅了一个主题
  3. 有 1 亿人订阅了一个主题

我知道交付将取决于在线应用程序,但是我们可以在这里假设每个人都在线的假设情况。换句话说,我想了解 FCM 如何处理将 PN 发送到主题以及它将/可能引入多少延迟?

Gas*_*lén 6

消息已排队,它们将从 Firebase 云消息服务器逐个用户传送,您可以在 Firebase 通知控制台了解这些消息的状态。

https://firebase.google.com/docs/cloud-messaging/understand-delivery

该视频可确保 95% 的消息平均在 250 毫秒内送达

https://youtu.be/sioEY4tWmLI

这个文档

两种消息类型的最大负载均为 4KB,从 Firebase 控制台发送消息时除外,该控制台强制执行 1024 个字符的限制。

您可以在本文档中找到另一件重要的事情

FCM 不保证交货顺序。

节流和缩放

我们的目标是始终传递通过 FCM 发送的每条消息。然而,传递每条消息有时会导致整体用户体验不佳。在其他情况下,我们需要提供边界以确保 FCM 为所有发送者提供可扩展的服务。

单个设备的最大消息速率

您可以向单个设备发送最多 240 条消息/分钟和 5,000 条消息/小时。这个高阈值是为了允许短期流量爆发,例如当用户通过聊天快速交互时。此限制可防止发送逻辑中的错误无意中耗尽设备上的电池。

上行消息限制

我们将每个项目的上游消息限制为 1,500,000/分钟,以避免上游目标服务器过载。

我们将每台设备的上游消息限制为 1,000 条/分钟,以防止不良应用行为导致电池耗尽。

扇出节流

消息扇出是将消息发送到多个设备的过程,例如当您定位主题和组或使用 Firebase 控制台中的通知编辑器时。

我们将每个项目正在进行的消息扇出数量限制为 1,000。之后,我们可能会拒绝其他扇出请求,直到某些扇出完成。

实际可实现的扇出率受到同时请求扇出的项目数量的影响。单个项目的扇出率为 10,000 QPS 并不罕见,但该数字并不能保证,而是系统总负载的结果。值得注意的是,可用的扇出容量是在项目之间划分的,而不是在扇出请求之间划分的。因此,如果您的项目正在进行两个扇出,则每个扇出只能看到可用扇出率的一半。最大化扇出速度的推荐方法是一次仅进行一个活动扇出。

如果您需要更多信息,可以在我提供的链接中找到。


Pet*_*dad 1

根据以下答案:

来自 Google Cloud Messaging 的消息需要多长时间才能到达设备

GCM - 推送通知到达设备需要多长时间?

推送通知应在发送后立即出现,但您需要考虑用户的互联网连接。