Skip to content

Интеграция MQTT

RUSEON Core использует библиотеку Eclipse Paho MQTT для публикации AI метаданных и системной телеметрии на внешние брокеры.

Архитектура

  • Буферизация: Используется кольцевой буфер LockFreeRingBuffer вместимостью 1024 сообщения. Это гарантирует, что медленный брокер MQTT не сможет заблокировать основной конвейер обработки видео.
  • QoS: Сообщения публикуются с QoS 0 (Доставка не более одного раза) и не сохраняются (not retained).
  • Доставка: "Выстрелил и забыл" (Fire-and-forget). Издатель не блокируется в ожидании подтверждений (acks).
  • Переподключение (Reconnect): Обрабатывается нативно библиотекой Paho с интервалом повторной попытки в 5 секунд.

Топики и полезная нагрузка (Payloads)

MQTT publisher в первую очередь транслирует JSON полезную нагрузку MetadataRequest (изначально полученную по gRPC).

Пример Payload:

json
{
  "camera_id": "cam-01",
  "pts": 16918234000,
  "objects": [
    {
      "label": "person",
      "confidence": 0.95,
      "x": 0.1,
      "y": 0.2,
      "width": 0.15,
      "height": 0.4
    }
  ]
}

Примечание по производительности

Из-за ограничения LockFreeRingBuffer в 1024 сообщения, если брокер MQTT упадет или скорость соединения будет крайне низкой, старые метаданные будут отброшены (политика drop-newest) для сохранения отзывчивости системы.

Released under the MIT License.