Перейти к содержанию
VVizorLabsТехнический центрОсновной сайт

BOX 3.x

Архитектура и сервисы BOX 3.x

Логические слои, ключевые сервисные домены, хранилища и путь данных от камеры до бизнес-события.

Для кого: архитектор / интегратор / devops
На этой странице

Принципы построения

BOX 3.x — распределённая микросервисная система в контейнерной среде Docker Swarm. Референсная топология разделяет комплекс на одну мастер-ноду с интерфейсами, бизнес-логикой и данными и одну или несколько вычислительных нод для обработки видео.

Большинство межсервисных взаимодействий передаётся асинхронно через Apache Kafka. Пользовательские запросы входят через Nginx и React, а слой ui-rest-to-grpc преобразует REST-запросы во внутренние gRPC-вызовы или команды Kafka.

  • Docker Swarm
  • Одна мастер-нода
  • Вычислительные ноды 1…N
  • Apache Kafka как центральная шина
  • REST-to-gRPC для синхронных запросов
  • Изолированные хранилища сервисов

Ключевые домены

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

ДоменОтветственностьПримеры компонентов
Видео и inferenceПриём потоков, распределение камер, запуск моделей и формирование результатовinf-mediaserver, inf-load-balancer, inf-inference
События и решенияПриём, фильтрация, хранение и обработка событийst-event-storage, st-event-filter, st-decision-matrix
Камеры и доступКамеры, наблюдения, пользователи, роли и аудитst-camera-storage, st-auth, st-access, st-audit
Данные и файлыВременные данные, изображения, видео и объектное хранилищеds-data-temporary-storage, ds-minio, inf-image-storage
Модели и медиаматериалыМодели ИИ, снимки, видеоархив и фрагменты для отчётовinf-models-storage, inf-snapshot-processor, va-video-archive, inf-report-video-extractor
Отчётность и интерфейсыВеб-интерфейс, отчёты, уведомления и APIui-nginx, ui-react, ui-rest-to-grpc, report generators

Данные и хранилища

Операционные сущности размещаются в PostgreSQL; сервисы статистического домена обычно используют собственный экземпляр или изолированную схему. ClickHouse обслуживает аналитические нагрузки и временные ряды, Redis — сессии, кэш и оперативные состояния. S3-совместимый MinIO хранит изображения, видео и другие файлы.

Конкретная топология, репликация, сроки хранения и размер хранилищ задаются проектом. При интеграции не следует обращаться к внутренним базам напрямую: используйте поддерживаемые API и события.

Путь от камеры до реакции

Камера передаёт поток на вычислительную ноду. inf-mediaserver обслуживает видеопоток, inf-load-balancer распределяет камеры, а inf-inference выполняет детекцию и публикует результаты в Kafka. Сервисы мастер-ноды подписываются на соответствующие топики, фильтруют и сохраняют события в PostgreSQL или ClickHouse, связывают их с медиаматериалами и передают оператору или внешней системе.

  • Камера или VMS
  • inf-mediaserver
  • inf-load-balancer и inf-inference
  • Apache Kafka
  • Фильтрация и event storage
  • Оператор, отчёт или внешняя система

Наблюдаемость

Для диагностики нужен единый маршрут по слоям: доступность камеры, входной поток, обработанный FPS, состояние inference, очередь Kafka, задержка записи, доступность хранилищ и доставка потребителю. Метрики собираются Prometheus, панели и дашборды строятся в Grafana, журналы агрегируются в Loki.

Сбой на последнем экране не обязательно означает проблему интерфейса: проверяйте весь путь события и сопоставляйте его с релизами и изменениями конфигурации.

Синхронные запросы и события: два маршрута

Веб-запрос и результат обработки кадра проходят разными путями. REST-to-gRPC обслуживает запросы интерфейса и интеграционных клиентов; Kafka переносит асинхронные события между сервисами. Имена топиков и состав подписчиков следует сверять с конфигурацией установленного релиза.

Обработка кадра в BOX 3.x
  1. 1
    Камера / VMS → inf-mediaserver

    Видеопоток поступает на вычислительную ноду.

    ↓ Кадры
  2. 2
    inf-inference

    Модель и логика обработки формируют результаты; inf-load-balancer отвечает за распределение камер.

    ↓ События Kafka
  3. 3
    Сервисы статистического домена

    st-event-filter, st-event-storage и st-decision-matrix фильтруют, сохраняют и обрабатывают результаты.

    ↓ Запрос API / уведомление
  4. 4
    Оператор и интеграции

    Клиент получает событие и связанные медиаматериалы через прикладные интерфейсы.

Управляющий маршрут: браузер → Nginx → ui-rest-to-grpc → gRPC-сервис или команда Kafka. Это логическая схема, а не перечень всех топиков.

Путь данных и операционный цикл BOX 3.x · открыть
Путь данных и операционный цикл BOX 3.x
Нажмите на изображение, чтобы открыть в полном размере.