Yük dengeleyici olarak türkçeye çevrilen bu yapılar; gelen trafiği arka plandaki müsait olan sunuculara yönlendirmekdir. Bir kaç türü vardır;
Load: Bu genelde yükü yani TCP veya HTTPS trafiği temsil eder. Bu yüzden TCP Load Balancer ve HTTPS Load Balancer olarak 2 ye ayrılır.
Daha önce bahsettiğim network katmanlarında Layer 7 üzerinde HTTPS, Layer 4 üzerinde TCP load balancer çalışır.
Layer: 4 TCP/IP Load Balancer
Bu load balancer a bir bağlantı yaptığınız o bağlantı arka plandaki bir sunucu ile eşleştirilir ve bundan sonraki tüm trafik hep aynı sunucuya akar. Bu durum o sonucuda problem olduğunda veri alışverişinin kesileceği anlamına gelir.
Layer 7 : HTTPS Load Balancer
Bu tipte ise gelen her talep arka plandaki en müsait olan sunucuya gönderilir. Böylece bir talebi gerçekleştirirken o sunucuda bir sorun olduğunda bir sonraki talep farklı sunucuya gideceği için veri alışverişi devam eder.
Load balancer lar piyasada genelde 3 çeşit olarak geçer. Hardware, Software ve Cloud Load Balancer.
Hızlıca bunlara bakalım;
Hardware Load Balancer
Bunlar tamamen donanım olarak bulunurlar. Büyük kurumlar genelde kullanılır. Çok pahalıdır, gelen trafiği sunucuların önüne koyacağınız fiziksel bir donanım karşılar.
Software Load Balancer
Yazılımsal dengeleyicilerdir. Piyasada nginx, haproxy gibi yazılımlar bunlara örnektir. Burada tüm yönetim size ait olduğu için cihazın sunucu yönetimi, yazılım güncellemeleri size aittir.
Cloud Load Balancer
Çeşitli Edge POP noktaları olan load balancerlar trafiği çok daha hızlı iletirler. Büyük trafik hacimleri için tasarlanan bu load balancer çeşidinde öde-kullan şeklinde bir hizmet modeli vardır. Google Cloud, AWS ELB, Cloudflare bunlara örnektir.
Load Balancer Stratejileri
Bu cihazlar farklı stratejilerle çalışmaktadır. Bazı yazılımsal load balancer lar üzerinde bu stratejileri seçme şansınız bulunmaktadır.
Round Robin: Sırayla sunuculara trafik gönderir. Yani 5 sunucu varsa 1,2,3,4,5 sırasıyla talepleri gönderir.
Least Loaded First: En az yüke sahip sunucuyu tespit edip talebi o sunucuya gönderir.
Adaptive Server: Sunucular belli metrikleri load balancer a gönderir, buna göre hangi sunucunun daha az yükü olduğuna load balancer karar verir. Örneğin ilk sunucuya 2 talep gitti ve CPU 90% oldu, 2. sunucu ise 6 tane talep aldı ama CPU %40 seviyelerinde. Bu metrikler gönderildiğinde load balancer daha uygun olan 2. sunucuya yeni talepleri göndermeye başlayacaktır.
Sticky Sessions: Bir kullanıcıdan veya cihazdan gelen trafikler, belli bir sunucu grubuna yönlendirir. Bunun sebebi o kullanıcıya veya o cihaza ait bilgiler ilk talepte o sunucuya depolanır ve diğer taleplerde bu bilgiler kullanılır.
Health Check: Load balancer arka plandaki makineleri periyodik olarak kontrol eder. Eğer cevap veremezse onu listesinden çıkarır ve trafik göndermez. Bu sayede talebin gönderileceği sunucunun bu talebi gerçekleştirebileceğinden emin olur.