Çift Orkestratörlü ve Sıfır Paket Kayıplı Otomatik Ölçeklenen RTSP Akış Mimarisi
Bir gözetim platformunun video akış altyapısını dinamik olarak ölçeklemesi gerekiyordu — yüzlerce eşzamanlı izleyici ve AI işleme çalışanı ile 10 ila 200'den fazla IP kamerayı yönetebilecek şekilde — ölçekleme operasyonları sırasında sıfır paket kaybını garanti ederken ve asla değişmeyen kararlı akış URL'lerini koruyarak.
Projenizi Tartışın
Zorluk
Sabit akış altyapısı, büyüyen bir gözetim platformunun değişken taleplerini karşılayamıyordu:
- Ölçek Değişkenliği — Kamera sayısı ve izleyici talebi gün boyunca önemli ölçüde dalgalanıyordu (zirveden en düşük noktaya 10 kat oran)
- Fazla Kaynak Ayırma Maliyeti — Yoğun yük için kaynak ayırmak, yoğun olmayan saatlerde %70'ten fazla boşta kaynak anlamına geliyordu
- Ölçekleme Sırasında Paket Kaybı — Akış sunucuları eklemek veya kaldırmak, akış kesintilerine neden oluyor, AI işleme çalışanları için kareler düşüyordu
- URL Kararsızlığı — Belirli sunucu IP'leriyle yapılandırılmış kameralar ve izleyiciler, altyapı değiştiğinde yeniden yapılandırma gerektiriyordu
- Farklı Ölçekleme İhtiyaçları — Kamera alımı ve izleyici dağıtımı, bağımsız ölçekleme gerektiren temelden farklı yük modellerine sahipti
- AI Çalışanı Kesintisi — AI işleme ardışık düzenleri, kaynak akış sunucuları ölçeklendirildiğinde çöküyordu
Çözümümüz
Ayrı alım ve dağıtım kümeleri, 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ı ile ç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çekleme denetleyicileri
- Yük Dengeleyiciler: Protokole uygun algoritmalarla küme başına ayrı yük dengeleyiciler
- Hizmet Kayıt Defteri: 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çekleme ö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, bir kümenin ölçekleme kararlarının diğerini etkilemeden, her birinin özel politikalar, metrikler ve eşiklerle bağımsız olarak ölçeklenmesine olanak tanır.
Alım Orkestratörü
- Birincil Metrik: Sunucu başına kamera bağlantısı
- İkincil Metrik: Gelen bant genişliği kullanımı
- Ölçekleme (Scale Up): CPU eşiği aştığında veya sunucu başına kamera kapasiteyi aştığında
- Küçültme (Scale Down): Kullanım, belirli 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ısı
- İkincil Metrik: Giden bant genişliği kullanımı
- Ölçekleme (Scale Up): CPU eşiği aştığında veya sunucu başına bağlantı kapasiteyi aştığında
- Küçültme (Scale Down): Kullanım, belirli bir süre boyunca eşiğin altına düştüğünde (alım işleminden daha uzun stabilizasyon)
- Sunucu Aralığı: 2 ila 20 sunucu (yüksek erişilebilirlik için minimum 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 kayıt defterinde "BOŞALTIM" 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. Boşalan sunucuya yeni bağlantılar ulaşamaz. Mevcut bağlantılar kesintisiz devam eder.
Aşama 3: AI Çalışanı GeçişiAI çalışanları, boşalan 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ığı yerden tam olarak devam etmesini sağlar. Toplam kesinti: 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 süre boyunca doğal olarak boşalır. Modern video oynatıcılar, aynı kararlı URL'ye otomatik olarak yeniden bağlanır ve bu da sağlıklı sunuculara yönlendirilir. Çoğu izleyici kesinti yaşamaz.
Aşama 5: TemizlemeTüm bağlantıların kapandığını doğrulayın. Sunucuyu hizmet kayıt defterinden kaldırın. Bulut örneğini yok edin. Ölçekleme metriklerini kaydedin.
Kararlı URL'ler
URL mimarisi, kameraların ve istemcilerin asla yeniden yapılandırma gerektirmemesini 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 (ki bunlar 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 Kayıt Defteri (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çekleme 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 noktası oluşturma
- Bildirim üzerine sağlıklı bir dağıtım sunucusuna yeniden bağlantı
- Minimum kesinti ile kontrol noktasından işlemeye devam etme
- 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çekleme
- 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çekleme sırasında URL'lerin asla değişmemesini sağlar
- AI Çalışanı Yeniden Bağlantısı — ~3 saniye kesinti ve sıfır kare kaybıyla kontrol noktası tabanlı geçiş
- Bağımsız Ölçekleme — Alım ve dağıtım, kendi metriklerine göre ölçeklenir
- Hizmet Kayıt Defteri — 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 küçültme
Sonuçlar
Teknoloji Yığını
caseStudyDetail.more Vaka Çalışmaları
Daha fazla teknik uygulamamızı keşfedin
Catant HR ve İş Gücü Yönetim Platformu
Catant, işletmelerin çalışanları, bordroyu, katılımı ve uyumluluğu tek bir kontrol panelinden yönetmelerine yardımcı olan modüler bir HR ve iş gücü yönetim platformudur.
Kickly: Startup'lar için Yapay Zeka Destekli Proje Platformu
Kickly, startup'lar için tasarlanmış yapay zeka destekli bir proje yönetim platformudur — akıllı görev otomasyonu, ekip işbirliği ve gerçek zamanlı ilerleme takibini tek bir üründe birleştirir.
İş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.