Skip to content

Архитектура системы и схема подсистем ​

RUSEON Core — это высокопроизводительный движок видеоинфраструктуры, написанный на языке Go. Система спроектирована для обеспечения максимальной пропускной способности, задержки стриминга менее 500 мс, предсказуемого потребления памяти и аппаратной отказоустойчивости.


Архитектурные принципы и гарантии ​

  1. Zero Transcoding (Без перекодирования): RUSEON Core никогда не декодирует видеопоток в несжатые пиксели YUV/RGB для стриминга. Сервер перепаковывает сжатые NAL-юниты непосредственно в оперативной памяти, снижая нагрузку на процессор более чем на 90% по сравнению с классическими VMS.
  2. Изоляция отказов подсистем: Задержка записи на диск или медленный мобильный клиент WebRTC не могут заблокировать приём RTSP от камеры. Кольцевой буфер независимо сбрасывает кадры только для зависшего подписчика.
  3. Безопасность памяти и детерминизм: Буферы пакетов ограничены пулами фиксированного размера, что исключает неконтролируемый рост кучи и фрагментацию памяти при круглосуточной работе.
  4. Устойчивость к сбоям питания: Видеоархив сохраняется исключительно в формате Fragmented MP4 (fMP4) со службой автоматического восстановления границ атомов при старте, что исключает появление битых файлов после внезапного отключения электричества.

Подсистемы архитектуры ​

ПодсистемаЗона ответственностиИсходные файлыПодробный раздел
Кольцевой буферХаб общей памяти, atomic.Pointer[CodecParams], предзаполнение KeyFrame, изоляция потребителейinternal/buffer/ring.goRing Buffer
Пайплайн стримингаПриём RTSP, парсинг NAL-юнитов, извлечение SPS/PPS, ограничение частоты подключенийinternal/stream/Stream Pipeline
Пайплайн записиСериализация боксов fMP4, системные вызовы sync_file_range и FADV_DONTNEEDinternal/recorder/Recording Pipeline
LL-HLS ПайплайнДинамическая генерация плейлистов, кеширование singleflight, lazy-жизненный циклinternal/api/hls.goHLS Pipeline
WebRTC ПайплайнWHEP сигнализация, интеграция с Pion WebRTC, сбор ICE-кандидатовinternal/webrtc/WebRTC Pipeline
Архитектура хранилищаБаза данных BadgerDB v4, иерархическая структура директорий архиваpkg/storage/Storage Architecture
Модель конкурентностиЖизненный цикл горутин, владение каналами, исключение дедлоковКодовая база ядраConcurrency Model
Внутренняя шина событийАсинхронный pub/sub маршрутизатор, фильтрация топиковinternal/events/bus.goEvent Bus
Архитектурные решения (ADR)Обоснование выбора Go, fMP4, BadgerDB, WHEP вместо WHIPЖурнал решенийDecisions Log

Связанная документация ​

Released under the MIT License.