Тема сообщений

Тематические сообщения FCM позволяют отправлять сообщения на несколько устройств, подписавшихся на определённую тему. Вы составляете тематические сообщения по мере необходимости, а FCM обеспечивает маршрутизацию и надёжную доставку сообщений на нужные устройства.

Ключевые моменты в тематических сообщениях:

  • Лучше всего подходит для общедоступной информации, например предупреждений о погоде.
  • Тематические сообщения оптимизированы для повышения пропускной способности, а не для уменьшения задержек. Для быстрой и безопасной доставки на отдельные устройства или небольшие группы отправляйте сообщения по регистрационным токенам, а не по темам.

Квоты и лимиты

Тематические сообщения поддерживают неограниченное количество подписок по каждой теме. Однако FCM устанавливает ограничения в следующих областях:

  • Один экземпляр приложения может быть подписан не более чем на 2000 тем.
  • Если вы используете пакетную подписку для подписки на экземпляры приложений, каждый запрос ограничен 1000 экземплярами приложений.

Регулирование подписки

Скорость добавления или удаления подписок на темы ограничена 3000 QPS на проект.

Частота новых подписок ограничена для каждого проекта. Если вы отправите слишком много запросов на подписку за короткий промежуток времени, серверы FCM вернут ответ 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED"). Повторите попытку с экспоненциальной задержкой.

Регулирование разветвления

Рассылка сообщений — это процесс отправки сообщения на несколько устройств, например, когда вы ориентируетесь на темы и группы или когда вы используете компоновщик уведомлений для таргетинга аудиторий или сегментов пользователей.

Рассылка сообщений не происходит мгновенно, поэтому иногда может происходить несколько рассылок одновременно. Мы ограничиваем количество одновременных рассылок сообщений в рамках проекта до 1000. После этого мы можем отклонить дополнительные запросы на рассылку или отложить рассылку до завершения некоторых из уже запущенных рассылок.

Фактически достижимая скорость разветвления зависит от количества проектов, одновременно запрашивающих разветвления. Скорость разветвления 10 000 запросов в секунду для отдельного проекта встречается нередко, но это значение не гарантировано и зависит от общей нагрузки на систему. Важно отметить, что доступная мощность разветвления распределяется между проектами, а не между запросами разветвления. Таким образом, если в вашем проекте выполняются два разветвления, то для каждого разветвления будет использоваться только половина доступной скорости разветвления. Рекомендуемый способ максимизировать скорость разветвления — поддерживать только один активный разветвитель одновременно.

Следующие шаги