Проектирование аналитики событий с низкой задержкой

Создание конвейеров данных для крупных физических площадок — задача непростая.

Мероприятие на 20 000 человек создает иные проблемы, чем стандартное веб-приложение. В веб-приложении пользователи распределены по часовым поясам. На площадке же тысячи людей создают всплески данных одновременно.

Пакетная обработка или long-polling приведут к задержкам. В управлении толпой задержка в 15 минут — это провал. В итоге вы будете реагировать на уже случившиеся проблемы вместо того, чтобы предотвращать их.

Чтобы добиться субсекундной скорости, вам необходим непрерывный поток данных от периферийного оборудования до вашей панели управления.

Вот схема отказоустойчивого конвейера телеметрии.

Уровень 1: Периферийные вычисления с приоритетом офлайн-режима (Offline-First)

Вам нужна задержка менее 5 мс. Также необходимо обрабатывать разрывы сетевого соединения. Используйте периферийные узлы с локальным кэшем в оперативной памяти, например Redis. Зеркалируйте вашу облачную базу данных на эти узлы до начала мероприятия.

Когда участник сканирует метку, система проверяет локальный кэш. Это позволяет работать в обход интернета и не останавливать проход через турникеты.

Уровень 2: Асинхронный сбор данных через MQTT

Сети на площадках часто нестабильны. Используйте MQTT, так как он легковесен. Периферийные узлы публикуют сообщения в облачный брокер, который затем направляет данные в очереди приема.

Уровень 3: Полнодуплексные WebSockets

Не заставляйте фронтенд запрашивать обновления. Используйте WebSockets для поддержания постоянного соединения с вашим API-шлюзом. Это гарантирует, что операционная группа увидит изменения на площадке менее чем за секунду.

Такая конфигурация позволяет командам мгновенно замечать скопления людей или низкую вовлеченность. Вы сможете перенаправить персонал до того, как возникнет «узкое место».

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

Источник: https://dev.to/stampiq/architecting-low-latency-real-time-event-analytics-at-scale-from-edge-rfid-to-websockets-3098