Load Balancer Nedir?
İngilizce: Load Balancer
Load balancer, gelen ağ trafiğini birden fazla sunucu arasında dağıtarak yüksek erişilebilirlik ve performans sağlayan sistem bileşenidir.
Load Balancer Nedir?
Load balancer, istemciden gelen trafiği birden fazla uygulama sunucusu, konteyner veya servis örneği arasında paylaştıran bileşendir. Amaç tek bir sunucunun darboğaz olmasını önlemek, bakım sırasında trafiği sağlıklı node’lara yönlendirmek ve kesintiye dayanıklılığı artırmaktır.
Yük dengeleme katman 4’te TCP/UDP seviyesinde veya katman 7’de HTTP isteği seviyesinde çalışabilir. Round robin, least connections, weighted routing ve IP hash gibi algoritmalar kullanılır. Sağlık kontrolleri başarısız olan instance’ları havuzdan çıkarır; bazı yapılarda TLS termination, sticky session, path bazlı yönlendirme ve rate limiting de load balancer üzerinde yapılır.
Tasarımda Dikkat Edilecekler
- Oturum bilgisinin sunucu belleğinde değil ortak store’da tutulması
- Timeout, keep-alive ve maksimum bağlantı ayarlarının backend ile uyumlu olması
- Health check endpoint’lerinin gerçek uygulama sağlığını ölçmesi
- Log, metrik ve trace verileriyle trafik dağılımının izlenmesi
Load balancer yatay ölçekleme için temel bileşendir, ancak kötü yapılandırıldığında hatayı tüm trafiğe yayabilir. Statik içerik ve edge dağıtımı için CDN, servisler arası yapı için microservice ve üretim görünürlüğü için observability kavramlarıyla birlikte değerlendirilir.
İlgili Terimler
CDN, statik içerikleri uç sunucularda önbelleğe alıp kullanıcıya en yakın noktadan sunarak gecikmeyi ve origin yükünü azaltır.
MicroserviceMikro hizmet mimarisi, büyük uygulamayı bağımsız geliştirilen, dağıtılan ve ölçeklenen küçük servisler halinde tasarlar.
NginxNginx, olay güdümlü mimarisiyle statik içerik sunan, reverse proxy yapan ve trafiği birden çok sunucuya dağıtan web sunucusudur.
Reverse ProxyReverse proxy, istemci trafiğini arka uç sunuculara ileten; TLS sonlandırma, önbellek, yönlendirme ve yük dengeleme yapan ara katmandır.
ThroughputThroughput, bir sistemin saniye, dakika veya saat başına işleyebildiği istek, işlem ya da veri miktarını gösteren kapasite metriğidir.