Load balancer nedir? Yük dağıtım algoritmaları nelerdir?

Cevap

Load balancer, gelen trafiği birden çok sunucuya dağıtarak yatay ölçeklemeyi ve yüksek erişilebilirliği sağlar. Sağlıksız sunucuları health check ile tespit edip trafiği onlardan çeker.

Katmanlar

  • L4 (transport): IP ve port seviyesinde, içeriğe bakmadan dağıtır. Çok hızlıdır (AWS NLB).
  • L7 (application): HTTP seviyesinde; URL, header, cookie'ye göre yönlendirebilir, TLS sonlandırma yapabilir (Nginx, HAProxy, AWS ALB).

Algoritmalar

AlgoritmaNasıl çalışırUygun durum
Round robinSunuculara sırayla dağıtırEş güçte sunucular, benzer istekler
Weighted round robinGüçlü sunucuya daha çok istekFarklı kapasitede sunucular, canary
Least connectionsEn az aktif bağlantısı olanaSüresi değişken istekler, WebSocket
Least response timeEn hızlı yanıt vereneGecikmeye duyarlı servisler
IP hashİstemci IP'sinin hash'ine göreBasit oturum yapışkanlığı
Consistent hashingAnahtar halka üzerinde sunucuya eşlenirCache sunucuları; sunucu eklenince az anahtar yer değiştirir
Random / power of two choicesRastgele iki sunucu seçip daha az yüklüsüBüyük, dağıtık sistemler

Sticky session

Aynı kullanıcıyı hep aynı sunucuya göndermektir (cookie veya IP hash). Sunucu belleğinde oturum tutuluyorsa gerekir; ama dengesiz yük oluşturur ve sunucu düşünce oturumlar kaybolur. Daha iyi çözüm, sunucuları stateless yapıp oturumu Redis'te veya JWT'de tutmaktır.

Load balancer'ın kendisi tek hata noktası mı?

Evet olabilir; bu yüzden aktif-pasif çift kurulum (keepalived ile sanal IP), DNS seviyesinde birden çok LB veya bulutun yönetilen, kendinden yedekli load balancer'ları kullanılır.

  1. Mesaj kuyruğu (RabbitMQ, Kafka) ne zaman kullanılır?ZorSistem TasarımıBackend
  2. Monolith ile mikroservis mimarisi arasındaki fark nedir? Mikroservislere ne zaman geçilmeli?ZorSistem TasarımıBackend
  3. CAP teoremi nedir? Gerçek sistemlerde nasıl yorumlanır?ZorSistem TasarımıBackend
  4. Dikey ve yatay ölçekleme arasındaki fark nedir?KolaySistem TasarımıFull Stack
  5. Hangi cache stratejilerini biliyorsunuz?OrtaSistem TasarımıFull Stack
  6. REST ile GraphQL arasındaki farklar nelerdir?OrtaSistem TasarımıFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle