Сообщения по темам

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

Основные моменты, касающиеся обмена сообщениями по темам:

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

Квоты и ограничения

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

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

Ограничение подписки

Добавлять и удалять подписки на темы можно с частотой не более 3000 запросов в секунду на проект.

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

Ограничение веерной рассылки

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

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

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

Дальнейшие действия