Интеграция 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) для сохранения отзывчивости системы.