Ana Sayfa/Teknolojiler/Yük Dengeleyici Nedir? Web Siteleri ve Uygulamalarda Trafik Dağıtımı
Teknolojiler

Yük Dengeleyici Nedir? Web Siteleri ve Uygulamalarda Trafik Dağıtımı

Yük dengeleyici, modern web siteleri ve uygulamalar için kritik bir altyapı bileşenidir. Trafiği sunucular arasında dengeli şekilde dağıtarak yüksek erişilebilirlik ve ölçeklenebilirlik sağlar. Algoritmalar, çalışma katmanları ve sunucu arızalarında hizmetin devamı gibi önemli detayları bu yazıda bulabilirsiniz.

15 Eyl 2026
8 dk
Yük Dengeleyici Nedir? Web Siteleri ve Uygulamalarda Trafik Dağıtımı

Yük dengeleyici, modern web siteleri, uygulamalar veya çevrimiçi hizmetler için kritik bir altyapı bileşenidir. Tek bir sunucuya gelen binlerce veya milyonlarca isteğin eşit şekilde dağıtılmasını sağlar. Böylece sistem, artan kullanıcı yükünü karşılayabilir, belirli sunucuların aşırı yüklenme riskini azaltır ve altyapının bir kısmı arızalansa bile hizmetin çalışmaya devam etmesini mümkün kılar.

Yük Dengeleyici Nedir ve Neden Gereklidir?

Yük dengeleyici (load balancer), kullanıcılar ile bir sunucu grubu arasında ara birim görevi görür. Kullanıcılar doğrudan bir sunucuya değil, tek bir giriş noktasına bağlanır. Ardından yük dengeleyici, hangi sunucunun isteği işleyeceğine karar verir.

Örneğin, dört sunucuyla çalışan bir e-ticaret sitesini düşünelim. Yük dengeleyici olmasa, bazı kullanıcılar aşırı yüklenmiş bir sunucuya yönlendirilirken diğerleri neredeyse kullanılmayan sunuculara bağlanabilir. Yük dengeleyici, trafiği tüm makineler arasında eşit şekilde dağıtarak daha dengeli bir sistem sağlar.

Bu dağıtım, çok sayıda eşzamanlı kullanıcısı olan hizmetler için özellikle önemlidir. Tek bir sunucu birkaç bin isteği saniyede işleyebilse de, sadece bir makineyi güçlendirmek teknik ve finansal sınırlara hızla ulaşır. Yeni sunucular ekleyip iş yükünü paylaşmak çok daha etkilidir.

Ayrıca yük dengeleyici, altyapının iç yapısını kullanıcılardan gizler. Kullanıcılar için hizmet tek bir adres gibi görünür; oysa arka planda onlarca hatta yüzlerce sunucu olabilir. Hangi sunucunun isteği işlediğini bilmek zorunda değiller.

Yük dengeleme yalnızca klasik web sitelerinde değil; API'lar, bulut platformları, mobil uygulamalar, oyun servisleri, video yayın sistemleri gibi yüksek trafikli projelerde de kullanılır.

Yük dengeleyicinin bir diğer önemli görevi, hatalı sunuculara istek göndermemektir. Bir makine cevap vermiyorsa, geçici olarak trafik dağıtımının dışına alınır ve istekler çalışan sunuculara yönlendirilir. Böylece tek bir sunucu arızası tüm hizmetin kesintiye uğramasına neden olmaz.

Yük Dengeleyici İstekleri Nasıl Dağıtır?

Kullanıcı bir siteye veya uygulamaya eriştiğinde, isteği ilk olarak yük dengeleyiciye ulaşır. Yük dengeleyici, mevcut sunucuları analiz eder ve biriyle eşleştirir. Bu süreç kullanıcı tarafından fark edilmez; hizmet hala tek bir sistem gibi görünür.

Genellikle yük dengeleyici, aynı veya benzer görevleri yerine getiren sunuculardan oluşan bir havuz ile çalışır. Her yeni istek, belirlenen algoritmaya göre uygun sunucuya yönlendirilir. Bu algoritma, sunucular arasında sırayla dağıtım yapabileceği gibi; aktif bağlantı sayısı, mevcut yük veya yanıt süresi gibi faktörleri de göz önünde bulundurabilir.

İstekleri yönlendirmeden önce, yük dengeleyicinin hangi sunucuların çalışır durumda olduğunu bilmesi gerekir. Bunun için sağlık kontrolleri (health checks) yapılır. Yük dengeleyici, düzenli olarak her sunucuya test isteği gönderir ve düzgün yanıt alıp almadığını kontrol eder.

Yanıt vermeyen ya da hata döndüren bir sunucu, geçici olarak dışarıda bırakılır. Yeniden işler duruma geldiğinde, tekrar sağlık kontrolünden geçip havuza dahil edilir.

Böyle bir yaklaşım, birçok alt sistemden oluşan dağıtık yapılarda özellikle önemlidir. Bu tür mimariler hakkında daha fazlasını Dağıtık Sistemler: Modern Dijital Altyapının Temeli başlıklı yazımızda bulabilirsiniz.

Yük arttıkça, havuza yeni sunucular eklenebilir. Yük dengeleyici, bu yeni makineleri otomatik olarak hesaba katar ve genel hesaplama gücü artar; hizmeti durdurmaya veya tek bir makineye taşımaya gerek kalmaz.

Trafik azaldığında ise, bazı sunucular kapatılabilir ve kalanlar çalışmaya devam eder. Bulut altyapılarda bu ölçeklendirme genellikle otomatiktir: sistem, mevcut yüke göre sunucu örnekleri ekler veya kaldırır.

Yük dengeleyici, sadece HTTP isteklerini değil; TCP ve UDP bağlantılarını, API çağrılarını ve farklı ağ trafiği türlerini de dağıtabilir. Kullanılan yöntem, yük dengeleyicinin ağın hangi katmanında çalıştığına ve isteğin içeriğiyle ilgili hangi bilgilere erişebildiğine bağlıdır.

Yük Dengeleme Algoritmaları: Round Robin, Least Connections ve Diğerleri

Yük dengeleyici, yeni bir istek için hangi sunucunun seçileceğini belirleyen özel algoritmalar kullanır. Seçilen yöntem, altyapının ne kadar dengeli kullanılacağını ve sistemin dengesiz yükte nasıl davranacağını belirler.

Round Robin

Round Robin, en basit yük dengeleme algoritmalarından biridir. İstekleri sunuculara sırayla yönlendirir: ilk istek Sunucu A'ya, ikincisi B'ye, üçüncüsü C'ye ve sonra döngü tekrar başlar.

Sunucular benzer kapasitede ve istekler de benzer kaynak gerektiriyorsa, bu yöntem iyi çalışır. Analiz gerektirmediği için basit ve öngörülebilirdir.

Ancak, istekler arasında büyük farklılıklar varsa sorun yaşanabilir. Bir kullanıcı küçük bir sayfayı anında alırken, diğeri ağır bir işlem başlatabilir. Sunuculara eşit sayıda istek gitse de, gerçek yük farklı olur.

Least Connections

Least Connections algoritması, en az aktif bağlantısı olan sunucuyu seçer. Sıralı dağıtım yerine, o anda en az meşgul olan makineye öncelik verir.

Örneğin; üç sunucu düşünün. Birincide 120, ikincide 70, üçüncüde 35 bağlantı var. Yeni istek üçüncü sunucuya gider çünkü şu anda en az müşteriyle ilgileniyor.

Bu yaklaşım, bağlantıların farklı sürelerde açık kaldığı hizmetler için faydalıdır. Ancak, bağlantı sayısı her zaman gerçek yükü yansıtmaz. Bir sunucu az sayıda ama ağır işlemlerle meşgul olabilirken, diğeri çok sayıda basit isteği hızla yanıtlayabilir. Daha karmaşık sistemlerde, yük dengeleyici ek metrikler de dikkate alabilir.

Weighted Round Robin ve Weighted Least Connections

Sunucular farklı güçteyse, onlara farklı ağırlıklar atanabilir. Daha güçlü makineler daha fazla, daha zayıf olanlar ise daha az istek alır.

Örneğin; ağırlığı 2 olan bir sunucu, ağırlığı 1 olanın iki katı trafik alabilir. Sıralı dağıtımda bu Weighted Round Robin, aktif bağlantı sayısını da hesaba katarsa Weighted Least Connections olarak adlandırılır.

Bu yöntem, altyapı güncellemelerinde farklı nesil veya konfigürasyona sahip sunucular bir arada çalışırken çok kullanışlıdır.

Bazı sistemlerde, CPU kullanımı, boş bellek miktarı, yanıt süresi veya kuyruktaki istek sayısı gibi gerçek zamanlı metriklere göre sunucu seçimi yapılır. Bu yaklaşım daha karmaşıktır ama altyapının mevcut durumuna göre daha doğru kararlar alınmasını sağlar.

Tek bir evrensel yük dengeleme algoritması yoktur. Kısa ve benzer istekler için Round Robin yeterli olabilirken; uzun süreli bağlantılar için Least Connections, farklı güçlü sunucular için ise ağırlıklı algoritmalar daha uygundur.

L4 ve L7: Yük Dengeleyicinin Çalışma Katmanı

Yük dengeleyiciler, sadece algoritmalarıyla değil, analiz ettikleri bilgilerle de ayrışır. Genellikle OSI modelinin L4 ve L7 katmanlarında çalışmalarıyla sınıflandırılırlar.

L4 Yük Dengeleme

L4 yük dengeleyici, taşıma katmanında çalışır ve ağırlıklı olarak IP adresi, port ve protokol (ör. TCP veya UDP) üzerinden karar verir.

HTTP isteğinin içeriğini analiz etmez, kullanıcının hangi sayfaya ulaşmak istediğiyle ilgilenmez. Bağlantı, yalnızca bir veri paketi akışı olarak ele alınır ve uygun sunucuya iletilir.

Bu yaklaşım, düşük işlem gücü gerektirir ve yüksek bant genişliği ile minimum gecikme sağlar. Örneğin, belirli bir TCP portuna gelen tüm bağlantılar, verinin içeriği incelenmeden birden fazla sunucuya dağıtılabilir.

L7 Yük Dengeleme

L7 yük dengeleyici, uygulama katmanında çalışır ve HTTP veya HTTPS gibi protokollerin yapısını anlar. Bu sayede sadece adres ve port değil, isteğin içeriği de göz önünde bulundurularak yönlendirme yapılır.

Örneğin, /api isteklerini uygulama sunucularına, /images isteklerini ise statik dosya sunucularına gönderebilir. Trafiği domain, istek türü veya HTTP'nin diğer parametrelerine göre de bölebilir.

Böylece daha esnek altyapılar kurulabilir. Tek bir yük dengeleyici, sitenin farklı bölümlerini bağımsız sunucu gruplarına yönlendirebilir ve kullanıcı bunu fark etmez.

Ancak, istek içeriğinin analiz edilmesi ekstra işlem gücü gerektirir. L7 yük dengeleyiciler daha karmaşıktır ama trafik yönetiminde çok daha fazla olanak sunar.

Pratikte L4 ve L7 seçimi ihtiyaca bağlıdır. İçerik analizine gerek yoksa ve hızlı yönlendirme isteniyorsa L4; URL, domain veya HTTP parametrelerine göre yönlendirme gerekiyorsa L7 kullanılır.

Yük Dengeleyiciler Nasıl Milyonlarca İsteği ve Sunucu Arızalarını Yönetir?

Yük dengeleyicinin en büyük avantajı, tek bir sunucunun kapasitesinin ötesine geçildiğinde ortaya çıkar. Sonsuz şekilde tek bir makineyi büyütmek yerine, yatay olarak ölçeklendirme yapılır: yeni sunucular eklenir ve gelen istekler aralarında paylaştırılır.

Örneğin, bir sunucu saniyede 10.000 isteği işleyebiliyorsa, on benzer makine birlikte çok daha büyük bir trafiği karşılayabilir. Yük dengeleyici, kullanıcıları uygun ve açık sunuculara yönlendiren koordinasyon noktası olur. Bu nedenle büyük siteler ve çevrimiçi servisler, milyonlarca isteği tek bir süper sunucuya ihtiyaç duymadan karşılayabilirler.

Altyapının büyümesi ve yeni düğümlerin sisteme eklenmesi hakkında daha fazlası için Sistemlerin Ölçeklenmesi: Modern Altyapı ve Veritabanı Stratejileri yazımıza göz atabilirsiniz.

Yük dengeleyici, yüksek erişilebilirlik için de kritiktir. Bir sunucu arızalansa bile, diğerleri çalışmaya devam eder. Sağlık kontrolleri, hatalı düğümü tespit eder ve yeni istekler ona yönlendirilmez. Kullanıcılar altyapının bir kısmı geçici olarak devre dışı kalsa bile kesinti yaşamayabilir.

Ancak, yük dengeleyicinin kendisi de tek hata noktası olabilir. Tüm trafik tek bir cihaza giderse ve bu cihaz arızalanırsa, diğer sunucular çalışır durumda olsa da hizmet kesintiye uğrar. Bu nedenle kritik sistemlerde, birden fazla yedekli yük dengeleyici kullanılır veya bu görev dağıtılır.

Çok büyük ölçeklerde, trafik birden fazla seviyede dengelenebilir. Kullanıcı önce uygun veri merkezi veya bölgeye yönlendirilir, ardından yerel yük dengeleyici sunucu grubu seçer, son olarak da uygulama içi yönlendirme yapılır.

Bu yapı, içerik dağıtım ağlarının (CDN) çalışma mantığına da dayanak oluşturur. CDN'ler, içeriği kullanıcıya yakın sunucularda barındırarak ana altyapının yükünü azaltır ve site hızını artırır. Detaylar için CDN Nedir? İçerik Dağıtım Ağları ile Site Hızınızı Artırın makalemizi inceleyebilirsiniz.

Böylece, trafik dağıtımında çok katmanlı bir yapı oluşur: global düzeyde kullanıcı yönlendirme, yerelde ise spesifik sunucu seçimi. Bu sayede altyapı büyüyebilir ve bireysel sunucu arızaları hizmetin tamamen durmasına neden olmaz.

Sonuç

Yük dengeleyici, bağımsız sunucuları tek bir bütün olarak çalıştırıp yüksek kullanıcı trafiğini verimli biçimde yönetmeyi sağlar. Gelen bağlantıları karşılar, belirlenen algoritmaya göre uygun sunucuya iletir ve çalışmayan düğümleri otomatik olarak hariç tutar.

Basit sistemlerde Round Robin, daha dinamik ortamlarda Least Connections ve ağırlıklı algoritmalar tercih edilir. L4 düzeyinde ağ bağlantıları yönlendirilir; L7 sayesinde ise HTTP isteklerinin içeriği analiz edilerek farklı trafik türleri farklı altyapı bölümlerine dağıtılır.

Yük arttıkça yeni sunucular eklenerek sistem büyütülebilir ve kullanıcı bağlantı şekli değişmeden hizmet sürdürülebilir. Büyük ölçekli servislerde, yük dengeleme, yatay ölçeklendirme ve yedekleme kombinasyonu; milyonlarca isteği karşılamayı ve sunucu arızalarında bile hizmetin devamını mümkün kılar.

Etiketler:

yük dengeleyici
web altyapısı
trafik yönetimi
dağıtık sistemler
ölçeklenebilirlik
algoritmalar
cloud
cdns

Benzer Makaleler