Tanım
Load balancer (yük dengeleyici), gelen istekleri birden fazla sunucuya belirli bir algoritmaya göre dağıtarak hiçbir sunucunun aşırı yüklenmemesini ve sunuculardan biri arızalandığında hizmetin diğerleri üzerinden sürmesini sağlayan ağ bileşenidir. Yazılım (HAProxy, Nginx) ya da donanım olarak çalışabilir.
Load balancer nasıl çalışır?
Load balancer, istemcilerin bağlandığı tek bir giriş noktası olarak çalışır ve her isteği arka plandaki sunucu havuzundan birine iletir. Hangi sunucunun seçileceği algoritmayla belirlenir:
| Algoritma | Nasıl dağıtır? |
|---|---|
| Round robin | İstekleri sırayla her sunucuya verir |
| Least connections | En az aktif bağlantısı olan sunucuyu seçer |
| IP hash | Aynı istemciyi hep aynı sunucuya gönderir |
| Ağırlıklı | Güçlü sunuculara daha fazla istek verir |
Load balancer sunucuları düzenli sağlık kontrolü (health check) ile yoklar; yanıt vermeyen sunucu havuzdan geçici olarak çıkarılır ve trafik diğerlerine yönlendirilir.
Katman 4 ile katman 7 yük dengeleme farkı nedir?
Katman 4 (L4) yük dengeleme, yalnızca IP adresi ve port bilgisine bakarak TCP/UDP bağlantılarını dağıtır; hızlıdır ve oyun sunucuları ya da veritabanı gibi HTTP dışı trafikte kullanılabilir. Katman 7 (L7) yük dengeleme ise HTTP isteğinin içeriğine (adres yolu, başlık, çerez) bakar; örneğin /api isteklerini bir sunucu grubuna, statik dosyaları başka bir gruba gönderebilir ve TLS sonlandırması yapabilir. L7 yük dengeleyici aynı zamanda bir reverse proxy olarak çalışır.
Yük dengeleme kullanırken uygulama oturumlarının (session) paylaşılan bir depoda (Redis, veritabanı) tutulması ya da “sticky session” ayarlanması gerekir. Birden fazla VPS sunucu ile Nginx tabanlı bir yük dengeleyici kurmak için Ubuntu Nginx kurulumu rehberi iyi bir başlangıçtır; yüksek erişilebilirlik hedefi için uptime maddesine de bakabilirsiniz.