Çift Orkestratörlü ve Sıfır Paket Kayıplı Otomatik Ölçeklenen RTSP Akış Mimarisi
Bir gözetim platformu, 10'dan 200'den fazla IP kamerayı, yüzlerce eşzamanlı izleyiciyi ve AI işleme çalışanını yönetirken, ölçeklendirme işlemleri sırasında sıfır paket kaybını garanti ederek ve asla değişmeyen kararlı akış URL'lerini sürdürerek video akış altyapısını dinamik olarak ölçeklendirmesi gerekiyordu.
Projenizi Tartışın
Zorluk
Sabit akış altyapısı, büyüyen bir gözetim platformunun değişken taleplerini karşılayamadı:
- Ölçek Değişkenliği — Kamera sayısı ve izleyici talebi gün boyunca önemli ölçüde dalgalandı (10 kat tepe-çukur oranı)
- Aşırı Kaynak Sağlama Maliyeti — En yüksek yük için kaynak sağlama, yoğun olmayan saatlerde %70'ten fazla boşta kaynak anlamına geliyordu
- Ölçeklendirme Sırasında Paket Kaybı — Akış sunucularını eklemek veya kaldırmak, akış kesintilerine neden oldu ve AI işleme çalışanları için kareler düşürdü
- URL Kararsızlığı — Belirli sunucu IP'leriyle yapılandırılmış kameralar ve izleyiciler, altyapı değiştiğinde yeniden yapılandırma gerektirdi
- Farklı Ölçeklendirme İhtiyaçları — Kamera alımı ve izleyici dağıtımı, bağımsız ölçeklendirme gerektiren temelden farklı yük desenlerine sahipti
- AI Çalışanı Kesintisi — AI işleme ardışık düzenleri, kaynak akış sunucuları ölçeklendirildiğinde çöktü
Çözümümüz
Ayrı alım ve dağıtım kümelerine sahip, sıfır paket kaybı için 5 aşamalı sorunsuz kapatma, kararlı DNS tabanlı URL'ler ve otomatik AI çalışanı yeniden bağlantısı özelliklerine sahip çift orkestratörlü otomatik ölçeklenen bir akış mimarisi tasarladık.
Mimari
- Akış Sunucusu: RTSP/WebRTC/HLS protokol desteği için MediaMTX
- Alım Kümesi: Kamera RTSP akışlarını alan 1-10 sunucu
- Dağıtım Kümesi: İzleyicilere (WebRTC/HLS) ve AI çalışanlarına (RTSP) hizmet veren 2-20 sunucu
- Çift Orkestratör: Alım ve dağıtım için bağımsız ölçeklendirme denetleyicileri
- Yük Dengeleyiciler: Küme başına protokole uygun algoritmalarla ayrı yük dengeleyiciler
- Hizmet Kaydı: Sunucu durumu, akış eşlemeleri ve koordinasyon için Redis
- Sağlık İzleme: Otomatik kurtarma ile aktif sağlık kontrolleri
- DNS Katmanı: Yük dengeleyicilere işaret eden kararlı alan adları (URL'ler asla değişmez)
Çift Orkestratör Tasarımı
Neden İki Orkestratör
Alım ve dağıtım, temelden farklı ölçeklendirme özelliklerine sahiptir:
- Alım, kamera sayısı ve gelen bant genişliği ile ölçeklenir (tahmin edilebilir, istikrarlı bir şekilde büyür)
- Dağıtım, izleyici sayısı ve AI çalışanı talebi ile ölçeklenir (ani, tahmin edilemez)
Ayrı orkestratörler, her birinin özelleştirilmiş politikalar, metrikler ve eşiklerle bağımsız olarak ölçeklenmesini sağlar — bir kümenin ölçeklendirme kararlarının diğerini etkilemeden.
Alım Orkestratörü
- Birincil Metrik: Sunucu başına kamera bağlantısı
- İkincil Metrik: Gelen bant genişliği kullanımı
- Ölçeklendirme Yukarı: CPU eşiği aştığında veya sunucu başına kamera kapasiteyi aştığında
- Ölçeklendirme Aşağı: Kullanım, sürekli bir stabilizasyon süresi boyunca eşiğin altına düştüğünde
- Sunucu Aralığı: 1 ila 10 sunucu
Dağıtım Orkestratörü
- Birincil Metrik: Sunucu başına izleyici + AI çalışanı bağlantıları
- İkincil Metrik: Giden bant genişliği kullanımı
- Ölçeklendirme Yukarı: CPU eşiği aştığında veya sunucu başına bağlantı kapasiteyi aştığında
- Ölçeklendirme Aşağı: Kullanım, sürekli bir süre boyunca eşiğin altına düştüğünde (alımdan daha uzun stabilizasyon)
- Sunucu Aralığı: 2 ila 20 sunucu (yüksek erişilebilirlik için en az 2)
Sıfır Paket Kaybı: 5 Aşamalı Sorunsuz Kapatma
Bir dağıtım sunucusu kaldırılmak üzere planlandığında, 5 aşamalı bir süreç hiçbir karenin kaybolmamasını sağlar:
Aşama 1: Ön BildirimSunucu, hizmet kaydında "DRAINING" olarak işaretlenir. Yük dengeleyici ağırlığı azaltılır, böylece yeni bağlantılar başka yere yönlendirilir. Redis pub/sub bildirimleri ve webhooks, AI çalışanlarını geçişe hazırlanmaları için uyarır.
Aşama 2: Yük Dengeleyici GüncellemesiSunucu, yük dengeleyici arka uç havuzundan kaldırılır. Yeni bağlantılar boşaltılmakta olan sunucuya ulaşamaz. Mevcut bağlantılar kesintisiz devam eder.
Aşama 3: AI Çalışanı GeçişiAI çalışanları, boşaltılmakta olan sunucudan bağlantıyı keser ve sağlıklı dağıtım sunucularına yeniden bağlanır. Kontrol noktası tabanlı durum koruma, işlemenin kaldığı tam kareden devam etmesini sağlar. Toplam boşluk: sıfır kare kaybıyla yaklaşık 3 saniye.
Aşama 4: İzleyici BoşaltmaKalan izleyici bağlantıları, yapılandırılabilir bir pencere üzerinden doğal olarak boşaltılır. Modern video oynatıcılar, sağlıklı sunuculara yönlendiren aynı kararlı URL'ye otomatik olarak yeniden bağlanır. Çoğu izleyici herhangi bir kesinti yaşamaz.
Aşama 5: TemizlemeTüm bağlantıların kapandığını doğrulayın. Sunucuyu hizmet kaydından kaldırın. Bulut örneğini yok edin. Ölçeklendirme metriklerini kaydedin.
Kararlı URL'ler
URL mimarisi, kameraların ve istemcilerin asla yeniden yapılandırmaya ihtiyaç duymamasını sağlar:
- Kamera yayın hedefi: Kararlı bir alım alan adı
- İzleyici/AI erişim hedefi: Kararlı bir dağıtım alan adı
- DNS kayıtları, yük dengeleyici IP'lerine işaret eder (kalıcıdır)
- Yük dengeleyiciler, arka uç sunucularına yönlendirmeyi şeffaf bir şekilde yönetir
- Arka uç sunucuları, URL değişiklikleri olmadan eklenebilir, kaldırılabilir veya değiştirilebilir
Hizmet Kaydı (Redis)
Merkezi bir Redis örneği, tüm sistemi koordine eder:
- Sunucu durumu takibi (aktif, boşaltılıyor, çevrimdışı)
- Akıştan sunucuya eşleme (hangi kameranın hangi alım sunucusunda olduğu)
- AI çalışanı durumu ve kontrol noktası verileri
- Ölçeklendirme kararları için sunucu başına yük metrikleri
- Gerçek zamanlı koordinasyon olayları için Pub/sub kanalları
AI İstemcisi Yeniden Bağlantısı
Bir AI istemci kütüphanesi sorunsuz yeniden bağlantı sağlar:
- Redis pub/sub aracılığıyla sunucu kaldırma bildirimlerini dinler
- Düzenli aralıklarla otomatik kare kontrol noktalaması
- Bildirim üzerine sağlıklı bir dağıtım sunucusuna yeniden bağlanır
- Minimum boşlukla kontrol noktasından işleme devam eder
- Yeniden bağlantı olayları için metrik raporlama
Sağlık İzleme
- Düzenli aralıklarla her sunucuda aktif sağlık kontrolleri
- Sunucu arızalarında otomatik yük dengeleyici güncellemeleri
- Yanıt vermeyen sunucular için otomatik kurtarma tetikleyicileri
- Çalışma süresi takibi ve kullanılabilirlik raporlaması
Temel Özellikler
- Çift Orkestratör — Alım ve dağıtım kümeleri için bağımsız ölçeklendirme
- Sıfır Paket Kaybı — AI çalışanı geçişi ile 5 aşamalı sorunsuz kapatma
- Kararlı URL'ler — DNS tabanlı yönlendirme, ölçeklendirme sırasında URL'lerin asla değişmemesini sağlar
- AI Çalışanı Yeniden Bağlantısı — Yaklaşık 3 saniye boşluk ve sıfır kare kaybıyla kontrol noktası tabanlı geçiş
- Bağımsız Ölçeklendirme — Alım ve dağıtım, kendi metriklerine göre ölçeklenir
- Hizmet Kaydı — Sunucu durumu ve akış eşlemeleri için Redis tabanlı koordinasyon
- Sağlık İzleme — Otomatik kurtarma ile aktif kontroller
- Maliyet Optimizasyonu — Düşük talep dönemlerinde otomatik ölçeklendirme aşağı
Sonuçlar
Teknoloji Yığını
caseStudyDetail.more Vaka Çalışmaları
Daha fazla teknik uygulamamızı keşfedin
AI Destekli Fatura İşleme (OCR ve QuickBooks Entegrasyonu ile)
Ayda yüzlerce satıcı faturasını işleyen orta ölçekli bir işletme, fatura verilerini AI/OCR kullanarak otomatik olarak çıkarıp muhasebe ve ödeme takibi için doğrudan QuickBooks'a senkronize ederek manuel veri girişini ortadan kaldırmak istedi.
İstemci Tarafında Reklam Ekleme (CSAI), SCTE-35 İşaretleyici Ayrıştırma ve Çok Platformlu Oynatıcı Entegrasyonu ile
Bir video akış platformu, sunucu tarafı reklam eklemenin sağlayamadığı tam reklam etkileşimi desteğiyle (tıklanabilir katmanlar, yardımcı banner'lar, atlama düğmeleri) kişiselleştirilmiş, cihaz düzeyinde reklam deneyimleri sunarak web, mobil ve akıllı TV uygulamaları genelinde Client-Side Ad Insertion (CSAI) uygulamasına ihtiyaç duyuyordu.
İşletmenizi Dönüştürmeye Hazır mısınız?
Zorluklarınıza benzer çözümler uygulamamızın yollarını konuşalım.