主题消息传递

借助 FCM 主题消息传递,您可以将消息发送至已经选择订阅特定主题的多台设备。您只需根据需要撰写主题消息,FCM 会负责确定发送路径并将消息可靠地传送至正确的设备。

主题消息传递的要点:

  • 最适合公开提供的信息,如天气变化提醒。
  • 主题消息的优化重心是吞吐量而非延迟。如需将消息快速安全地传送到单台设备或小规模设备组,应将消息定位至注册令牌,而非主题。

配额和限制

主题消息传递不限制每个主题的订阅数。但是,FCM 在以下方面有强制性限制:

  • 一个应用实例最多只能订阅 2,000 个主题。
  • 如果您通过批量订阅来订阅应用实例,则每次请求仅限订阅 1,000 个应用实例。

订阅节流

添加或移除主题订阅的速率限制为每个项目 3,000 QPS。

每个项目新增订阅的频率存在限制。如果您在短时间内发送过多订阅请求,FCM 服务器将给出 429 RESOURCE_EXHAUSTED(“QUOTA_EXCEEDED”)响应。请使用指数退避算法重试。

扇出限制

消息扇出是指向多台设备发送消息的过程,例如当您定位主题和群组,或使用 Notifications Composer 定位目标设备或细分用户群时。

消息扇出不是瞬时间完成的,因此有时候您会同时运行多个扇出。我们将每个项目中并发进行的消息扇出数量限制为 1000。超出此值之后,我们可能会拒绝其他扇出请求,或者推迟请求中的扇出,直到某些正在进行的扇出完成为止。

实际可实现的扇出率受同时请求扇出的项目数量的影响。单个项目的扇出率为 10,000 QPS 并不罕见,但该数字与系统的总负载密切相关,并无保证。值得注意的是,可用的扇出容量在项目之间而不是在扇出请求之间分配。因此,如果您的项目有两个正在进行的扇出,那么每个扇出只能使用可用扇出率的一半。最大化扇出速度的推荐方法是一次只有一个进行中的活跃扇出。

后续步骤