- 16 Mar 2017
- 3,246
- 92
Herkese iyi hafta sonları bu konumda " Load Balancer Nedir" "Nasıl Çalışır" ve "Algoritmaları Nelerdir" bahsedeceğim başlıklar sırasıyla bunlar.
Load Balancer Nedir ?
Load Balancer bir yük paylaştırma sistemidir örnek vermek gerekir ise elinizde size ait bir web sitesi var ilk açıldığında günlük 300 tık alırken zamanla sitenizi ziyaret eden kişi sayısı artıyor binlere çıkıyor artık tek bir sunucu istekleri karşılayamaz hale geldi yapacağınız şey ne olurdu tabiki sunucu çoğaltmayı seçerdiniz 2-3 sunucunuz var artık peki bunlarda istekleri karşılayamaz ise yada bir sunucu hata verir ve isteklere cevap veremez hale gelirse yine aynı duruma düşersiniz Load Balancer da tam burada devreye giriyor sitenize gelen istekleri veya gelen ağ trafiğini sunucularınıza eşit şekilde paylaştırarak sunucularınız üzerindeki baskıyı azaltır hatta bir sunucu hata verdiğinde gelen istekleri o sunucuya yollamaz ve bu sayede sitenize gelen kişi boş bir ekran sayfası ile karşılaşmaz. Sadece web siteleri değil uygulamalar ve veritabanı sunucularında da aynı hizmeti verir. Örnek bir görsel:
Sağladığı bir diğer avantaj ise sunucu üzerindeki uygulamaları güncellemenizi kolaylaştırması isteklerin güncellenecek sunucuya gitmesini engeller güncelleme tamamlandıktan sonra sunucu yeniden isteklere açık hale gelir. Load Balancer sistemlerine en uygun örnek Google olacaktır.
Peki Load Balancer istekleri yönlendirmede uygun sunucuyu nasıl seçer. Yukarıda verdiğim bilgiler genel olarak " LAYER 7 - Https" katmanı üzerinedir.
Tcp/İp Load Balancer ( Layer 4 )
Gelen istekleri sunuculara yönlendirir örnek vermek gerekir ise elimizde bir istemci 2 sunucu olsun ve istemci bağlanmak istediğinde "sunucu1" e yönlendirilsin
Tcp Veri akışı başladığında bağlanılan sunucu hangisi ise bağlantı bitene kadar hep aynı sunucuya veri akışı yönlendirilir fakat sunucuda herhangi bir kopma veya sunucunun bozulması gibi durumlarda istemcinin sunucu ile bağlantısı da kesilir nedeni ise "https" gibi sunucular üzerindeki veriler çekilmez "Tcp" de verileri sağlayan sizsinizdir yada bağlanılan sunucudan alınan bilgiler kopma durumunda diğer sunucudan aktarılmaya kaldığı yerden devam edilemez.
LAYER 7 - Https Load Balancer
Konu başında kısa bir bahsetme yapmıştım şuan ise sadece istekleri sunuculara nasıl dağıttığını göreceğiz. Tcp/ip sunucularına nazaran sadece tek bir bağlantı kurmazlar bir istemcinin her isteklerini sunucularınıza eşit olarak yayar. Örn:
Görüldüğü üzere aynı istemciden çıkan istekler bile Load Balancer aracılığı ile sunucularınıza istekleri eşit bir şekide dağıtır.
Algoritmalar :
Least Recently Used : Ağ trafiğini yönetirken gelen istekleri üzerinde en az yük bulunan sunucuya yönlendirir. En az yükten kasıt son kullanıcılardır sitenize girdiklerinde sunucu 1' e yönlendirilmiş ise ve site üzerinde uzun süre kalır ise gelen istekler üzerinde en az yük olan sunuculara yönlendirilecektir. " Weighted Least Recently Used" farkı ise belirttiğiniz her sunucunun kapasitesi ve ağırlığını bilir ve sunucular üzerindeki istek sayılarına göre yönlendirmesini yapar.
Resimde de görüldüğü üzere "sunucu2" "sunucu1" e kıyasla daha fazla depolama alanına ait Least Recently Used algoritmasına göre daha az yük olana yönlendirilir yani
Round Robin algoritması : Sunucularınıza gelen istekleri sırasıyla en üstten en alta iletir yani ilk isteği a sunucusuna ikinci isteği b sunucusuna iletir sunucu sayınıza göre bu işlem A-Z 'ye tekrar eder sonra en başttan yani" a -b - c " olacak şekilde istekleri yeniden yönlendirmeye başlar böylelikle bir döngü oluşur. Bir diğer seçenek ise " Weighted Round Robin " Aralarındaki tek fark diğer sunuculara nazaran büyük olan sunuculara diğerlerinden daha fazla istek gönderir.
IP Hash : Siteye bir kere giriş yapan kullanıcının bilgileri kaydedilir her girişinde aynı sunucuya yönlendirilir.
Rastgele : Sunuculara ve istemcilere atadığı sayıları kullanarak rastgele bir şekilde dağıtır.
Load Balancer Türleri
Hardware Load Balancer
Load Balancer cihazları deyince akla gelen iki şirket Tp-Link ve F5
F5 Cihazları :
VIPRION 4800 Chassis
VIPRION 4450 Blade
https://www.f5.com/products/big-ip-services/viprion-chassis
Tp-Link Load Balancer
Load Balance Routers
TL-ER5120
Load Balance Routers
TL-R480T+
Load Balance Routers
TL-R470T+
https://www.tp-link.com/tr/business-networking/load-balance-router/
Tp-Link Load Balancer
veya
Aşağıda verdiğim linke tıklayarak sunucu özelliklerini ve günlük site ziyaretçi sayınızı girerek size en uygun cihazı ve özellikleri bulabilirsiniz.
load-balancer-sizing-web-application-server
Software Load Balancer ( Yazılım Yük Dengeleyicileri )
Tamamen sizin belirlediğiniz trafik yönlendirme seçeneği ile çalışırlar istediğiniz bir programı alıp sunucunuzda kurmanız ve gerekli ayarlamaları yaptıktan sonra kullanabilirsiniz. Genellikle açık kaynaklı olmaları bir diğer artıdır.
Açık Kaynak Load Balancer
Seesaw
https://github.com/google/seesaw
LoadMaster by KEMP
https://freeloadbalancer.com/
HAProxy
https://www.haproxy.org/
ZEVENET
https://www.zevenet.com/products/community/#repository
Neutrino
https://neutrinoslb.github.io/
Balance
https://balance.inlab.net/
Pen
https://github.com/UlricE/pen
Nginx
https://www.nginx.com/
Traefik
https://containo.us/traefik/
Gobetween
gobetween - modern & minimalistic load balancer for the cloud era
Kendi TCP Load Balancer'ımızı Yapalım. ( Go Dili İle)
[ame="https://www.youtube.com/watch?v=QTBZxDgRZM0&t=2s"]https://www.youtube.com/watch?v=QTBZxDgRZM0&t=2s[/ame]
Cloud Load Balancer
Google Cloud Load Balancing
https://cloud.google.com/load-balancing/
Amazon Web Services Elastic Load Balancer
https://aws.amazon.com/tr/elasticloadbalancing/
Azure Load Balancer
https://azure.microsoft.com/en-us/services/load-balancer/
DigitalOcean Load Balancer
https://www.digitalocean.com/products/load-balancer/
NodeBalancers
https://www.linode.com/products/nodebalancers/
Load Balancer Nedir ?
Load Balancer bir yük paylaştırma sistemidir örnek vermek gerekir ise elinizde size ait bir web sitesi var ilk açıldığında günlük 300 tık alırken zamanla sitenizi ziyaret eden kişi sayısı artıyor binlere çıkıyor artık tek bir sunucu istekleri karşılayamaz hale geldi yapacağınız şey ne olurdu tabiki sunucu çoğaltmayı seçerdiniz 2-3 sunucunuz var artık peki bunlarda istekleri karşılayamaz ise yada bir sunucu hata verir ve isteklere cevap veremez hale gelirse yine aynı duruma düşersiniz Load Balancer da tam burada devreye giriyor sitenize gelen istekleri veya gelen ağ trafiğini sunucularınıza eşit şekilde paylaştırarak sunucularınız üzerindeki baskıyı azaltır hatta bir sunucu hata verdiğinde gelen istekleri o sunucuya yollamaz ve bu sayede sitenize gelen kişi boş bir ekran sayfası ile karşılaşmaz. Sadece web siteleri değil uygulamalar ve veritabanı sunucularında da aynı hizmeti verir. Örnek bir görsel:
Sağladığı bir diğer avantaj ise sunucu üzerindeki uygulamaları güncellemenizi kolaylaştırması isteklerin güncellenecek sunucuya gitmesini engeller güncelleme tamamlandıktan sonra sunucu yeniden isteklere açık hale gelir. Load Balancer sistemlerine en uygun örnek Google olacaktır.
Peki Load Balancer istekleri yönlendirmede uygun sunucuyu nasıl seçer. Yukarıda verdiğim bilgiler genel olarak " LAYER 7 - Https" katmanı üzerinedir.
Tcp/İp Load Balancer ( Layer 4 )
Gelen istekleri sunuculara yönlendirir örnek vermek gerekir ise elimizde bir istemci 2 sunucu olsun ve istemci bağlanmak istediğinde "sunucu1" e yönlendirilsin
Tcp Veri akışı başladığında bağlanılan sunucu hangisi ise bağlantı bitene kadar hep aynı sunucuya veri akışı yönlendirilir fakat sunucuda herhangi bir kopma veya sunucunun bozulması gibi durumlarda istemcinin sunucu ile bağlantısı da kesilir nedeni ise "https" gibi sunucular üzerindeki veriler çekilmez "Tcp" de verileri sağlayan sizsinizdir yada bağlanılan sunucudan alınan bilgiler kopma durumunda diğer sunucudan aktarılmaya kaldığı yerden devam edilemez.
LAYER 7 - Https Load Balancer
Konu başında kısa bir bahsetme yapmıştım şuan ise sadece istekleri sunuculara nasıl dağıttığını göreceğiz. Tcp/ip sunucularına nazaran sadece tek bir bağlantı kurmazlar bir istemcinin her isteklerini sunucularınıza eşit olarak yayar. Örn:
Görüldüğü üzere aynı istemciden çıkan istekler bile Load Balancer aracılığı ile sunucularınıza istekleri eşit bir şekide dağıtır.
Algoritmalar :
Least Recently Used : Ağ trafiğini yönetirken gelen istekleri üzerinde en az yük bulunan sunucuya yönlendirir. En az yükten kasıt son kullanıcılardır sitenize girdiklerinde sunucu 1' e yönlendirilmiş ise ve site üzerinde uzun süre kalır ise gelen istekler üzerinde en az yük olan sunuculara yönlendirilecektir. " Weighted Least Recently Used" farkı ise belirttiğiniz her sunucunun kapasitesi ve ağırlığını bilir ve sunucular üzerindeki istek sayılarına göre yönlendirmesini yapar.
Resimde de görüldüğü üzere "sunucu2" "sunucu1" e kıyasla daha fazla depolama alanına ait Least Recently Used algoritmasına göre daha az yük olana yönlendirilir yani
Round Robin algoritması : Sunucularınıza gelen istekleri sırasıyla en üstten en alta iletir yani ilk isteği a sunucusuna ikinci isteği b sunucusuna iletir sunucu sayınıza göre bu işlem A-Z 'ye tekrar eder sonra en başttan yani" a -b - c " olacak şekilde istekleri yeniden yönlendirmeye başlar böylelikle bir döngü oluşur. Bir diğer seçenek ise " Weighted Round Robin " Aralarındaki tek fark diğer sunuculara nazaran büyük olan sunuculara diğerlerinden daha fazla istek gönderir.
IP Hash : Siteye bir kere giriş yapan kullanıcının bilgileri kaydedilir her girişinde aynı sunucuya yönlendirilir.
Rastgele : Sunuculara ve istemcilere atadığı sayıları kullanarak rastgele bir şekilde dağıtır.
Load Balancer Türleri
Hardware Load Balancer
Load Balancer cihazları deyince akla gelen iki şirket Tp-Link ve F5
F5 Cihazları :
VIPRION 4800 Chassis
VIPRION 4450 Blade
https://www.f5.com/products/big-ip-services/viprion-chassis
Tp-Link Load Balancer
Load Balance Routers
TL-ER5120
Load Balance Routers
TL-R480T+
Load Balance Routers
TL-R470T+
https://www.tp-link.com/tr/business-networking/load-balance-router/
Tp-Link Load Balancer
veya
Aşağıda verdiğim linke tıklayarak sunucu özelliklerini ve günlük site ziyaretçi sayınızı girerek size en uygun cihazı ve özellikleri bulabilirsiniz.
load-balancer-sizing-web-application-server
Software Load Balancer ( Yazılım Yük Dengeleyicileri )
Tamamen sizin belirlediğiniz trafik yönlendirme seçeneği ile çalışırlar istediğiniz bir programı alıp sunucunuzda kurmanız ve gerekli ayarlamaları yaptıktan sonra kullanabilirsiniz. Genellikle açık kaynaklı olmaları bir diğer artıdır.
Açık Kaynak Load Balancer
Seesaw
https://github.com/google/seesaw
LoadMaster by KEMP
https://freeloadbalancer.com/
HAProxy
https://www.haproxy.org/
ZEVENET
https://www.zevenet.com/products/community/#repository
Neutrino
https://neutrinoslb.github.io/
Balance
https://balance.inlab.net/
Pen
https://github.com/UlricE/pen
Nginx
https://www.nginx.com/
Traefik
https://containo.us/traefik/
Gobetween
gobetween - modern & minimalistic load balancer for the cloud era
Kendi TCP Load Balancer'ımızı Yapalım. ( Go Dili İle)
[ame="https://www.youtube.com/watch?v=QTBZxDgRZM0&t=2s"]https://www.youtube.com/watch?v=QTBZxDgRZM0&t=2s[/ame]
Cloud Load Balancer
Google Cloud Load Balancing
https://cloud.google.com/load-balancing/
Amazon Web Services Elastic Load Balancer
https://aws.amazon.com/tr/elasticloadbalancing/
Azure Load Balancer
https://azure.microsoft.com/en-us/services/load-balancer/
DigitalOcean Load Balancer
https://www.digitalocean.com/products/load-balancer/
NodeBalancers
https://www.linode.com/products/nodebalancers/
Konu Buraya Kadardı Okuduğunuz İçin Teşekkürler Ayrıca Resimlerin Birkaçı Bana Ait Kötü İse Kusura Bakmayın )
Son düzenleme: