Перейти к основному содержимому

Архитектура облачного решения MULTIPUSHED

Термины

  • Пуш-сообщение: всплывающие сообщения на экране мобильного устройства пользователя.
  • Токен доступа (accessToken): выдается в системе управления системе управления MULTIPUSHED для каждого мобильного приложения
  • Клиентский токен (clientToken): выдается на конкретное мобильное устройство при установке мобильного приложения. Потребуется для отправки пуш-сообщений. Клиентские токены удаляются при неактивности в 60 дней.

Основные компоненты

  1. PUB. Сервис публикации (несколько экземпляров) – HTTPS API для публикации пуш-сообщений
  2. SUB. Сервис подписки (множество экземпляров) – группа серверов реализующих соединение с мобильными устройствами по протоколу WebSockets Secure
  3. Router. Внутренний сервис-оркестратор доставки сообщений
  4. APNS. Внутренний сервис доставки сообщений через Apple Push Notification service
  5. FCM. Внутренний сервис доставки сообщений через Firebase Cloud Messaging
  6. HPK. Внутренний сервис доставки сообщений через Huawei Push Kit
  7. Offline Database. База данных для хранения токенов, пользователей и настроек
  8. Online Database. База данных для хранения месторасположения клиентских токенов и временных данных
  9. Broker. Брокер сообщения для обмена данными между сервисами
Схема потоков данных отправки пуш-сообщений

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

Схема потоков данных

Сценарий подключение нового клиента:

  1. Клиенты (устройства) подключаются к одному из экземпляров SUB и поддерживают с ним постоянное подключение WebSockets Secure.
  2. Сервис Router проверяет есть ли новые пуш-сообщения для данного клиента и доставляет их.

Сценарий отправки пуш-сообщения:

  1. PUB получает запрос на отправку пуш-сообщения. В состав запроса входит клиентский токен и сообщение пуша.
  2. Выполняет необходимые проверки. Например, зарегистрирован ли токен в системе.
  3. Если клиент онлайн, отправляет сообщение в Broker с указанием очереди, которую слушает экземпляр Router к которому подключен клиент.
  4. Router получает сообщение и понимает, куда нужно переслать дальше (SUB, APNS и т.п.).
  5. Экземпляр SUB получает сообщение от брокера и пересылает его клиенту через WebSocket.
  6. Мобильное приложение подтверждает доставку в рамках установленного подключения с SUB.