Auto-Scaling RTSP Streaming-Architektur mit Dual-Orchestratoren & Null Paketverlust
Eine Überwachungsplattform musste ihre Video-Streaming-Infrastruktur dynamisch skalieren können — von 10 bis zu über 200 IP-Kameras mit Hunderten von gleichzeitigen Zuschauern und AI-Verarbeitungsarbeitern — und dabei während der Skalierungsoperationen einen Null-Paketverlust garantieren sowie stabile Stream-URLs beibehalten, die sich nie ändern.
Ihr Projekt besprechen
Die Herausforderung
Eine feste Streaming-Infrastruktur konnte die variablen Anforderungen einer wachsenden Überwachungsplattform nicht bewältigen:
- Skalierungsvariabilität — Die Anzahl der Kameras und die Nachfrage der Zuschauer schwankten dramatisch im Laufe des Tages (10-faches Verhältnis von Spitze zu Tal)
- Überprovisionierungskosten — Die Bereitstellung für Spitzenlast bedeutete über 70% ungenutzte Ressourcen während der Nebenzeiten
- Paketverlust während der Skalierung — Das Hinzufügen oder Entfernen von Streaming-Servern verursachte Stream-Unterbrechungen, wodurch Frames für AI-Verarbeitungsarbeiter verloren gingen
- URL-Instabilität — Kameras und Zuschauer, die mit bestimmten Server-IPs konfiguriert wurden, benötigten eine Neukonfiguration, wenn sich die Infrastruktur änderte
- Unterschiedliche Skalierungsbedürfnisse — Kameraaufnahme und Zuschauerverteilung hatten grundlegend unterschiedliche Lastmuster, die eine unabhängige Skalierung erforderten
- AI-Arbeiterunterbrechung — AI-Verarbeitungspipelines stürzten ab, wenn ihr Quellstream-Server heruntergefahren wurde
Unsere Lösung
Wir entwarfen eine Dual-Orchestrator Auto-Scaling Streaming-Architektur mit separaten Aufnahme- und Verteilungsclustern, einem 5-Phasen-Gleitenden Herunterfahren für Null Paketverlust, stabilen DNS-basierten URLs und automatisierter AI-Arbeiter-Wiederverbindung.
Architektur
- Streaming-Server: MediaMTX für RTSP/WebRTC/HLS-Protokollunterstützung
- Aufnahme-Cluster: 1-10 Server, die Kamera-RTSP-Streams empfangen
- Verteilungs-Cluster: 2-20 Server, die Zuschauer (WebRTC/HLS) und AI-Arbeiter (RTSP) bedienen
- Dual-Orchestratoren: Unabhängige Skalierungscontroller für Aufnahme und Verteilung
- Load Balancer: Separate Load Balancer pro Cluster mit protokollgerechten Algorithmen
- Service-Registry: Redis für Serverstatus, Stream-Zuordnungen und Koordination
- Gesundheitsüberwachung: Aktive Gesundheitsprüfungen mit automatisierter Wiederherstellung
- DNS-Schicht: Stabile Domain-Namen, die auf Load Balancer verweisen (URLs ändern sich nie)
Dual-Orchestrator-Design
Warum zwei Orchestratoren
Aufnahme und Verteilung haben grundlegend unterschiedliche Skalierungscharakteristika:
- Aufnahme skaliert mit der Anzahl der Kameras und der eingehenden Bandbreite (vorhersehbar, wächst stetig)
- Verteilung skaliert mit der Anzahl der Zuschauer und der Nachfrage der AI-Arbeiter (stoßweise, unvorhersehbar)
Separate Orchestratoren ermöglichen es jedem, unabhängig mit spezialisierten Richtlinien, Metriken und Schwellenwerten zu skalieren — ohne dass die Skalierungsentscheidungen eines Clusters den anderen beeinflussen.
Aufnahme-Orchestrator
- Primäre Metrik: Kameraverbindungen pro Server
- Sekundäre Metrik: Nutzung der eingehenden Bandbreite
- Skalierung nach oben: Wenn die CPU den Schwellenwert überschreitet oder die Kameras pro Server die Kapazität überschreiten
- Skalierung nach unten: Wenn die Nutzung unter den Schwellenwert für eine anhaltende Stabilisierungsperiode fällt
- Serverbereich: 1 bis 10 Server
Verteilungs-Orchestrator
- Primäre Metrik: Zuschauer- und AI-Arbeiter-Verbindungen pro Server
- Sekundäre Metrik: Nutzung der ausgehenden Bandbreite
- Skalierung nach oben: Wenn die CPU den Schwellenwert überschreitet oder die Verbindungen pro Server die Kapazität überschreiten
- Skalierung nach unten: Wenn die Nutzung unter den Schwellenwert für eine anhaltende Periode fällt (längere Stabilisierung als bei der Aufnahme)
- Serverbereich: 2 bis 20 Server (mindestens 2 für hohe Verfügbarkeit)
Null Paketverlust: 5-Phasen-Gleitendes Herunterfahren
Wenn ein Verteilungsserver zur Entfernung geplant ist, stellt ein 5-Phasen-Prozess sicher, dass keine Frames verloren gehen:
Phase 1: VorankündigungServer wird als "DRAINING" in der Service-Registry markiert. Load Balancer-Gewicht wird reduziert, damit neue Verbindungen anderswohin geleitet werden. Redis Pub/Sub-Benachrichtigungen und Webhooks alarmieren AI-Arbeiter, sich auf die Migration vorzubereiten.
Phase 2: Load Balancer-UpdateServer wird aus dem Load Balancer-Backend-Pool entfernt. Keine neuen Verbindungen können den drainenden Server erreichen. Bestehende Verbindungen bleiben ununterbrochen.
Phase 3: AI-Arbeiter-MigrationAI-Arbeiter trennen sich vom drainenden Server und verbinden sich mit gesunden Verteilungsservern. Checkpoint-basierte Zustandserhaltung stellt sicher, dass die Verarbeitung genau von dem Frame fortgesetzt wird, an dem sie aufgehört hat. Gesamtlücke: ungefähr 3 Sekunden mit null verlorenen Frames.
Phase 4: Zuschauer-EntleerungVerbleibende Zuschauerverbindungen entleeren sich natürlich über ein konfigurierbares Fenster. Moderne Videoplayer verbinden sich automatisch mit derselben stabilen URL, die zu gesunden Servern führt. Die meisten Zuschauer erleben keine Unterbrechung.
Phase 5: BereinigungÜberprüfen, dass alle Verbindungen geschlossen sind. Server aus der Service-Registry entfernen. Cloud-Instanz zerstören. Skalierungsmesswerte aufzeichnen.
Stabile URLs
Die URL-Architektur stellt sicher, dass Kameras und Clients nie neu konfiguriert werden müssen:
- Kamera-Veröffentlichungsziel: Ein stabiler Aufnahme-Domain-Name
- Zuschauer/AI-Zugriffs-Ziel: Ein stabiler Verteilungs-Domain-Name
- DNS-Einträge verweisen auf Load Balancer-IPs (die dauerhaft sind)
- Load Balancer übernehmen die transparente Weiterleitung zu Backend-Servern
- Backend-Server können hinzugefügt, entfernt oder ersetzt werden, ohne dass sich die URLs ändern
Service-Registry (Redis)
Eine zentrale Redis-Instanz koordiniert das gesamte System:
- Serverstatus-Tracking (aktiv, drainend, offline)
- Stream-zu-Server-Zuordnung (welche Kamera auf welchem Aufnahme-Server ist)
- AI-Arbeiter-Zustand und Checkpoint-Daten
- Lastmetriken pro Server für Skalierungsentscheidungen
- Pub/Sub-Kanäle für Echtzeit-Koordinationsereignisse
AI-Client-Wiederverbindung
Eine AI-Client-Bibliothek bietet nahtlose Wiederverbindung:
- Hört auf Serverentfernungsbenachrichtigungen über Redis Pub/Sub
- Automatische Frame-Checkpoint-Erstellung in regelmäßigen Abständen
- Wiederverbindung zu einem gesunden Verteilungsserver bei Benachrichtigung
- Fortsetzung der Verarbeitung vom Checkpoint mit minimaler Lücke
- Metrikberichterstattung für Wiederverbindungsereignisse
Gesundheitsüberwachung
- Aktive Gesundheitsprüfungen auf jedem Server in regelmäßigen Abständen
- Automatische Load Balancer-Updates bei Serverausfällen
- Auto-Wiederherstellungsauslöser für nicht reagierende Server
- Betriebszeit-Tracking und Verfügbarkeitsberichte
Hauptmerkmale
- Dual-Orchestratoren — Unabhängige Skalierung für Aufnahme- und Verteilungscluster
- Null Paketverlust — 5-Phasen-Gleitendes Herunterfahren mit AI-Arbeiter-Migration
- Stabile URLs — DNS-basierte Weiterleitung stellt sicher, dass sich URLs während der Skalierung nie ändern
- AI-Arbeiter-Wiederverbindung — Checkpoint-basierte Migration mit ~3 Sekunden Lücke und null Frameverlust
- Unabhängige Skalierung — Aufnahme und Verteilung skalieren basierend auf ihren eigenen Metriken
- Service-Registry — Redis-basierte Koordination für Serverstatus und Stream-Zuordnungen
- Gesundheitsüberwachung — Aktive Prüfungen mit automatischer Wiederherstellung
- Kostenoptimierung — Automatische Skalierung nach unten während Zeiten geringer Nachfrage
Ergebnisse
Technologie-Stack
caseStudyDetail.more Fallstudien
Entdecken Sie mehr unserer technischen Implementierungen
Catant HR- und Workforce-Management-Plattform
Catant ist eine modulare HR- und Workforce-Management-Plattform, die Unternehmen dabei unterstützt, Mitarbeiter, Gehaltsabrechnung, Anwesenheit und Compliance von einem einzigen Dashboard aus zu verwalten.
Kickly: KI-gestützte Projektplattform für Startups
Kickly ist eine KI-gestützte Projektmanagementplattform, die speziell für Startups entwickelt wurde. Sie kombiniert intelligente Aufgabenautomatisierung, Teamzusammenarbeit und Echtzeit-Fortschrittsverfolgung in einem Produkt.
Bereit, Ihr Unternehmen zu transformieren?
Lassen Sie uns besprechen, wie wir ähnliche Lösungen für Ihre Herausforderungen anwenden können.