Load Balancer Nedir?
Load Balancing, sunucular üzerinde artan trafiğin karşılanabilmesi için kullanılan bir dengeleyici sistemdir. Bir web sitesinin yola başladığı günlerdeki ihtiyaçlarıyla zaman ilerledikten sonraki ihtiyaçları farklılaşır. Site daha yoğun ziyaret edilir noktaya geldiğinde RAM, disk gibi kaynaklar öncelikle artırılır ve daha sonra bu sistemi yönetebilmesi için Load Balancer kullanılır. Bu özelliğin olmadığı sistemde kullanıcılar tek bir web sunucu üzerinden siteye ulaşır. Sunucu üzerinde herhangi bir sorun olduğunda kullanıcılar siteye ulaşamaz. Eş zamanlı çok fazla kişi aynı siteye ulaşmaya çalışırsa yine tek sunucu üzerinde oluşacak olan dengesiz yük yüzünden sistem kasacağı için yavaş açılabilir ya da açılmayabilir. Bu sorunların geneli sisteme destek vermesi için eklenecek bir sunucu ve Load Balancer kullanılarak kolaylıkla ortadan kaldırılabilir.
Load Balancer sistemi ile HTTP, HTTPS, TCP ve UDP gibi dört temel trafik türü için dengeleme kuralları oluşturulabilmektedir. HTTP standart dengeleme sürecinde tüm istekler HTTP tekniklerine göre yönlendirilir. HTTPS dengeleme süreci ile HTTP dengeleme süreci aynı sistemi kullanır. HTTP veya HTTPS kullanılmayan uygulamalarda TCP trafiği dengeleyebilir. Bir süredir de UDP kullanılan temel internet protokolleri için Load Balancer desteği eklenebiliyor.
Load Balancer Nasıl Çalışır?
Load balancer sisteminde trafik dengelenebilmesi için farklı sunuculara paylaşım yapılır. Bu paylaşımı gerçekleştirmek için yani hangi sunucu olacağını seçmek için iki faktörlü bir kombinasyon kullanılır. Trafiğin yönlendirebileceği sunucuların çalışacağından emin olduktan sonra daha önceden yapılandırılan kurallara göre sunucuyu seçerek isteği ulaştırır.
Burada öncelik sunucunun cevap verme denetiminden geçmesindedir. Cevap verme denetiminden geçemeyen sunucuya istek yönlendirilmez geçici olarak sunucu havuzunda pasif hale getirilir. Bu süreç sunucunun tekrar denetimden geçene kadar baki kalır.
İsteklerin hangi sunucuya gideceğini belirleyen Round Robin, Least Connection ve Source olmak üzere üç algoritmadan bahsedebiliriz. Round Robin, algoritmasında sistem sıralı seçim üzerine kuruludur. İstek geldiğinde listesindeki ilk sunucuyu denetler cevap alırsa ona yönlendirir. Daha sonra sırayla listenin altına kadar devam eder. Liste sonuna ulaştığında tekrar listenin başına döner. Least Connection algoritmasında ise sistem en az bağlantıya sahip sunucuyu seçmesine dayalıdır. Source algoritmasında IP adresine göre yük dengeleyici çalışır. Aynı kullanıcının aynı sunucuya bağlanması sağlanır.
Hangi Durumlarda Load Balancer Kullanılmalı?
Bir web sitenin çalışır durumda olması ve hızlı olması iyi bir kullanıcı deneyimi için önemlidir. Bu sebeple Load Balancer sisteminin kullanılması sisteminin en iyi şekilde çalışmasını sağlayacaktır. Web sitelerin dönemsel olarak trafiği doğal olandan daha yoğun olabilir. Bu tip durumlarda site yetersiz çalışabilir ve kesintiye uğrayabilir. Bu tip durumların yaşanmaması için dengeleyici bir sistem olan Load Balancer kullanılmalıdır. Bu dengeleyici sistem kullanılarak istekler en uygun veri tabanı kaynaklarına yönlendirilir. Böylelikle tek bir hata noktasında genel sistemin başarısız olması durumunun sonucu olarak kullanıma ara verilmez.
Yük dengeleyici sistem sistemlerin sadece çalışmasını sağlamak için değil aynı sistemin daha iyi çalışması içinde kullanılmalıdır. Siteyi ziyarete gelen kişilerin sürekli takılan, kesintiye giden ve çalışmayan bir sistemde yaşayacağı kötü deneyimden dolayı uzun süre o kaynakta durmak istemez. Bu durumda sitenin genel etkileşimini düşürerek tüm süreçleri olumsuz etkileyerek başarısızlığa sürükler. Bu sebeple sistemin çalışması ve sistemin en iyi şekilde çalışması için dengelenme ayarı büyük önem taşır.