Yük Dengeleyici
- İngilizcesi
- Load Balancer
- Okunuşu
- lod belınsır
Günlük kullanımda iki ad da yaygın.
Kısaca
Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
Yük dengeleyici nedir?
Yük dengeleyici, bir sunucu grubunun önünde durur ve gelen her isteği hangisinin karşılayacağına karar verir. İşi dağıtarak bir uygulamanın tek bir sunucunun kaldırabileceğinden daha fazla kullanıcıya hizmet vermesini sağlar; bir sunucu arızalandığında ya da bakım için devre dışı bırakıldığında da uygulamanın erişilebilir kalmasını sağlar.
Yük dengeleyiciler sunucuyu round robin (her sunucu sırayla), least connections (en az meşgul sunucu) ya da istemcinin IP adresinin hash'i gibi bir algoritmayla seçer; hash yöntemi aynı kullanıcının hep aynı sunucuya ulaşmasını sağlar. Ayrıca sağlık kontrolleri yapar: her arka uca düzenli test istekleri gönderir ve yanıt vermeyi bırakan sunucuyu otomatik olarak devreden çıkarır. Katman 4 yük dengeleyici trafiği yalnızca IP adresleri ve portlar üzerinden yönlendirir; katman 7 yük dengeleyici ise HTTP'yi anlar ve URL yoluna, başlıklara ya da cookie'lere göre yönlendirme yapabilir.
Birkaç kasa hattı olan ve her müşteriyi en kısa kuyruğa yönlendiren bir görevlinin bulunduğu bir süpermarketi düşünün; bir kasa kapanırsa müşteriler diğerlerine yönlendirilir. Yük dengeleyiciler özel donanım cihazları, NGINX, HAProxy ve Envoy gibi yazılımlar ya da bulut sağlayıcılarının yönetilen hizmetleri olabilir. Kubernetes'te LoadBalancer türündeki bir Service, platformdan pod'larınızın önünde bir tane oluşturmasını ister.
Yük dengeleyiciler sıklıkla reverse proxy'lerle karıştırılır. Reverse proxy, arka uç sunucular adına istek alan herhangi bir sunucudur ve bu istekleri birkaç arka uca dağıtmak yapabileceği işlerden yalnızca biridir; bu yüzden NGINX gibi araçlar çoğu zaman her iki rolü aynı anda üstlenir. Ancak bazı yük dengeleyiciler yalnızca ağ düzeyinde çalışır ve içlerindeki HTTP isteklerini okumadan bağlantıları iletir.
Bir bakışta
Önemli noktalar
- Yük dengeleyici, istekleri birden çok sunucu arasında dağıtır.
- Sağlık kontrolleri, arızalanan sunucuları otomatik olarak rotasyondan çıkarır.
- Yaygın algoritmalar arasında round robin, least connections ve IP hash bulunur.
- Katman 4 dengeleme IP adreslerini ve portları kullanır; katman 7 HTTP'yi anlar.
- Yük dengeleme, yatay ölçeklemeyi ve yüksek erişilebilirliği mümkün kılar.
Örnek
# The pool of backend servers that share the traffic
upstream app_servers {
least_conn; # send each request to the least busy server
server 10.0.0.11:3000;
server 10.0.0.12:3000;
server 10.0.0.13:3000;
}
server {
listen 80;
location / {
proxy_pass http://app_servers;
}
}Sık sorulan sorular
Yük dengeleyici ile reverse proxy arasındaki fark nedir?
Reverse proxy istemci isteklerini kabul eder ve arka uç sunuculara iletir; çoğu zaman önbellekleme, sıkıştırma ya da TLS sonlandırma ekler. Yük dengeleyici ise trafiği birkaç arka uca dağıtmaya odaklanır; birçok reverse proxy yük dengeleme yapabilir ve birçok yük dengeleyici de reverse proxy gibi davranır.
Sticky session nedir?
Sticky session (oturum yakınlığı), yük dengeleyicinin aynı kullanıcıdan gelen tüm istekleri, genellikle bir cookie'ye ya da istemcinin IP adresine dayanarak, aynı arka uç sunucuya göndermesi demektir. Sunucular oturum verisini bellekte tuttuğunda işe yarar, ancak oturumları paylaşılan bir önbellekte ya da veritabanında saklamak daha iyi ölçeklenir.
Yük dengeleyicinin kendisi arızalanırsa ne olur?
Tek bir yük dengeleyici tek arıza noktası olabilir; bu yüzden canlı ortamlarda genellikle iki ya da daha fazlası, paylaşılan bir yüzen IP adresiyle ya da sağlıklı olanlara işaret eden DNS kayıtlarıyla birlikte çalıştırılır. Yönetilen bulut yük dengeleyicileri bu yedeklemeyi otomatik olarak halleder.
Sık karşılaştırılanlar
- Ters Proxy vs Yük DengeleyiciTers proxy, istekleri arkasındaki sunuculara iletir ve TLS, önbellek, güvenlik ekler; yük dengeleyici ise yükü dağıtır, hiçbir sunucu aşırı yüklenmez.
- API Gateway vs Yük DengeleyiciYük dengeleyici trafiği aynı servisin kopyalarına dağıtır; API gateway ise her çağrıyı doğru servise yönlendiren ve kimlik doğrulamayı uygulayan tek ön kapıdır.
İlgili sayfalar
- Reverse ProxyDevOps ve Bulut, s. 42Reverse proxy, web sunucularının önünde durup istemci isteklerini onlar adına kabul eden ve her isteği doğru arka uç sunucuya ileten bir sunucudur.
- API GatewayBackend ve API'ler, s. 3API gateway, bir grup backend servisinin önünde duran ve API isteklerini alan, kontrol eden ve yönlendiren tek giriş noktası görevi gören bir sunucudur.
- KubernetesDevOps ve Bulut, s. 30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- DNSDevOps ve Bulut, s. 14DNS, internetin adlandırma sistemidir; example.com gibi insanın okuyabileceği alan adlarını bilgisayarların kullandığı sayısal IP adreslerine çevirir.
- Yatay ÖlçeklemeYazılım Mimarisi, s. 47Yatay ölçekleme (scale out), bir sistemin kapasitesini tek bir makineyi büyütmek yerine daha fazla makine ekleyip işi onlara dağıtarak artırır.
- Consistent HashingYazılım Mimarisi, s. 6Consistent hashing (tutarlı hashleme), anahtarları sunuculara, sunucu eklenip çıkarıldığında yalnızca küçük bir kısmı yer değiştirecek şekilde dağıtır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin