﻿
{"id":21769,"date":"2021-05-26T22:06:44","date_gmt":"2021-05-26T22:06:44","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=21769"},"modified":"2021-05-26T22:06:44","modified_gmt":"2021-05-26T22:06:44","slug":"load-balancingyuk-dengeleme-ve-load-balanceryuk-dengeleyici-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/load-balancingyuk-dengeleme-ve-load-balanceryuk-dengeleyici-nedir\/","title":{"rendered":"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.jpg\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?\" width=\"759\" height=\"387\" class=\"aligncenter size-full wp-image-21853\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.jpg 759w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir-300x153.jpg 300w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><\/a><br \/>\nMerhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde, bundan sonraki i\u00e7eriklerimiz i\u00e7in teorik temel olarak kullanaca\u011f\u0131m\u0131z Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) \u00fczerine duruyor olaca\u011f\u0131z. Load Balancing&#8217;in <em>ne oldu\u011fu<\/em>, <em>ne ama\u00e7la kullan\u0131ld\u0131\u011f\u0131<\/em>, <em>ne tarz algoritmalar\u0131 oldu\u011fu<\/em> vs. gibi sorular e\u015fli\u011finde hasbihalde bulunacak ard\u0131ndan sonraki i\u00e7eriklerimizde pratiksel olarak Load Balancer&#8217;\u0131 farkl\u0131 teknolojiler e\u015fli\u011finde tematik olarak inceliyor olaca\u011f\u0131z.<\/p>\n<h3>Load Balancing Nedir?<\/h3>\n<blockquote><p><em style=\"color:green;\">Ben yo\u011funum ablac\u0131m, arkada\u015f ilgilensin.<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"font-size:11px;\">Load Balancer<\/span ><\/em><\/p><\/blockquote>\n<p>Y\u00fck dengeleme, sunucu mimarilerindeki s\u0131n\u0131rl\u0131 sistem kaynaklar\u0131na ra\u011fmen artan y\u00fck\u00fcn\/trafi\u011fin\/iste\u011fin kar\u015f\u0131lanabilmesi i\u00e7in sunucu \u00fczerinde mevcut kaynaklar\u0131n donan\u0131msal olarak artt\u0131r\u0131lmas\u0131na nazaran sisteme ayn\u0131 \u00f6zellikte yeni sunucular\u0131n dahil olmas\u0131na ve bu birden fazla sunucu aras\u0131nda kaynaklar\u0131n orant\u0131l\u0131 bir \u015fekilde kullan\u0131labilece\u011fi vaziyette trafi\u011fin da\u011f\u0131t\u0131lmas\u0131na <strong>Load Balancing<\/strong> denmektedir.<\/p>\n<p>Geleneksel y\u00f6ntemlerde, gelen ve sistem kaynaklar\u0131n\u0131 t\u00fcketen(ya da bir ba\u015fka deyi\u015fle a\u015fan) yo\u011fun trafik\/istek durumlar\u0131na kar\u015f\u0131 bir \u00f6nceki paragrafta de\u011finildi\u011fi \u00fczere \u00f6nlem ama\u00e7l\u0131 donan\u0131msal kaynak artt\u0131r\u0131m\u0131 y\u00f6ntemi tercih edilmekteydi. Bu y\u00f6nteme halk dilinde \u00e7o\u011faltmak, y\u00fckseltmek yahut artt\u0131rmak anlam\u0131na gelen <strong style=\"color:red;\">Scale-Up<\/strong> ya da bir ba\u015fka deyi\u015fle <strong style=\"color:red;\">Vertical Scaling(Dikey \u00d6l\u00e7eklendirme)<\/strong> denmektedir. Bu dikey \u00f6l\u00e7eklendirme neticesinde avantaj ve dezavantajlar edinilmekteydi:<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir..png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir..png\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?\" width=\"638\" height=\"161\" class=\"aligncenter size-full wp-image-21798\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir..png 638w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-300x76.png 300w\" sizes=\"auto, (max-width: 638px) 100vw, 638px\" \/><\/a><\/p>\n<table>\n<thead>\n<tr>\n<th colspan=\"2\">SCALE UP<\/th>\n<\/tr>\n<tr>\n<th> Avantajlar\u0131<\/th>\n<th style=\"width:50%;\">Dezavantajlar\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Var olan sunucu \u00fczerinde geli\u015ftirme yap\u0131ld\u0131\u011f\u0131 i\u00e7in sunucu say\u0131s\u0131 artmayacakt\u0131r. Haliyle bu durum enerji tasarrufunu getirecektir.<\/td>\n<td>Sistemin yeri gelecek CPU, yeri gelecek RAM vs. gibi donan\u0131msal ihtiya\u00e7lar\u0131 olaca\u011f\u0131ndan dolay\u0131 maliyeti fazlad\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>Yukar\u0131daki sebepten dolay\u0131 sunucu say\u0131s\u0131 sabit olaca\u011f\u0131ndan dolay\u0131 so\u011futma maliyetide daha az olacakt\u0131r.<\/td>\n<td>Donan\u0131msal ar\u0131zalardan dolay\u0131 kesinti ya\u015fanma ihtimali olduk\u00e7a y\u00fcksektir. Ve bu durum tehlikeli bir risk te\u015fkil etmektedir. Load balancing \u00f6zellikle bu riske kar\u015f\u0131 verimli bir \u00e7\u00f6z\u00fcm olarak sunulabilmektedir.<\/td>\n<\/tr>\n<tr>\n<td>Teknik a\u00e7\u0131dan kolayd\u0131r.<\/td>\n<td>Upgrade\/y\u00fckseltme zorlu\u011fu vard\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>Lisans maliyeti azd\u0131r.<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0130\u015fte bu geleneksel y\u00f6nteme nazaran art\u0131k g\u00fcn\u00fcm\u00fczde sistemdeki mevcut sunucunun niceliksel olarak artt\u0131r\u0131lmas\u0131 tercih edilmektedir. Bu y\u00f6nteme de <strong style=\"color:red;\">Horizontal Scaling(Yatay \u00d6l\u00e7eklendirme)<\/strong> nispetinde <strong style=\"color:red;\">Scale-Out<\/strong> denmektedir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-1.png\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir.\" width=\"614\" height=\"141\" class=\"aligncenter size-full wp-image-21801\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-1.png 614w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-1-300x69.png 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><strong>Peki, sistemdeki sunucu say\u0131s\u0131n\u0131 niceliksel olarak artt\u0131rmak neye yaramaktad\u0131r?<\/strong><br \/>\nBurada amac\u0131m\u0131z, gelen istek trafi\u011finin orant\u0131l\u0131 bir \u015fekilde bu sunucular aras\u0131nda payla\u015f\u0131m\u0131n\u0131 sa\u011flayarak yo\u011funlu\u011fu \u00f6l\u00e7eklendirebilmek ve b\u00f6ylece tek bir uygulama instance&#8217;\u0131na t\u00fcm sorumlulu\u011fu vermeksizin y\u00fck\u00fc dengelemektir. Bu g\u00fcn\u00fcm\u00fczde bir\u00e7ok uygulamadan dolay\u0131 ihtiyac\u0131n\u0131 hissetti\u011fimiz bir durumdur. Farz-\u0131 misal vermek gerekirse, y\u00fczbinlerce ki\u015finin e\u015fzamanl\u0131 olarak istek yapt\u0131\u011f\u0131 bir web uygulamas\u0131nda bu isteklere kar\u015f\u0131l\u0131k do\u011fru ve h\u0131zl\u0131ca gerekli hizmeti verebilmek i\u00e7in sunucu kaynaklar\u0131m\u0131z\u0131n buna elveri\u015fli olmas\u0131 gerekmektedir. Her bir istekte metin, resim, video veya uygulama verileri h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde istemcilere cevap olarak sunulabilmelidir. Bu \u015fekilde y\u00fcksek hacimli trafi\u011fi kar\u015f\u0131layabilmek i\u00e7in en uygun ve az maliyetli y\u00f6ntem do\u011fru bir \u015fekilde \u00f6l\u00e7eklendirmedir. Bu durumda da ayn\u0131 i\u015fi yapacak birden fazla sunucu eklemeyi gerektirir.<\/p>\n<p>\u0130\u015fte bu \u015fekilde birbirinin tekrar\u0131 olan sunucularda aya\u011fa kald\u0131r\u0131lm\u0131\u015f birden fazla uygulama instance&#8217;\u0131n\u0131n gelen istek yo\u011funlu\u011funu payla\u015farak y\u00fck\u00fc dengelemesine <strong>Load Balancing<\/strong> denmektedir.<\/p>\n<h3>Load Balancer Nedir?<\/h3>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.png\"><img decoding=\"async\" width=\"100\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.png\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?\" class=\"alignleft size-full wp-image-21824\" \/><\/a>Load balancer&#8217;\u0131 yol kav\u015faklar\u0131nda duran trafik polisleri olarak d\u00fc\u015f\u00fcnebilirsiniz. Nas\u0131l ki trafik polisi, yolda ara\u00e7 yo\u011funlu\u011funa g\u00f6re ge\u00e7i\u015f \u00fcst\u00fcnl\u00fc\u011f\u00fcn\u00fcn karar\u0131n\u0131 veriyor benzer mant\u0131kla Load Balancer&#8217;da uygulamalar\u0131m\u0131za gelen istekleri en uygun sunucudaki instance&#8217;a y\u00f6nlendirmenin karar\u0131n\u0131 vermektedir. Yani load balancing i\u015fini yapan yaz\u0131l\u0131mlara yahut serverlara <strong>Load Balancer<\/strong> denilmektedir. B\u00f6ylece yo\u011funluk her ne kadar y\u00fcksek olursa olsun, t\u00fcm a\u011f\u0131rl\u0131k tek bir instance taraf\u0131ndan g\u00f6\u011f\u00fcslenmek mecburiyetinde kal\u0131nmamakta, ihtiya\u00e7 olan \u00f6l\u00e7eklendirme sa\u011flanm\u0131\u015f bulunmaktad\u0131r.<\/p>\n<p>Load balancing i\u00e7in bir\u00e7ok load balancer tool&#8217;u mevcuttur. Bunlardan genel ge\u00e7er olarak ilk be\u015fte sayabilece\u011fimiz;<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nginx.com\/\" rel=\"noopener\" target=\"_blank\">NGINX<\/a><\/li>\n<li><a href=\"https:\/\/www.solarwinds.com\" rel=\"noopener\" target=\"_blank\">SolarWinds Server and Application Monitor (SAM)<\/a><\/li>\n<li><a href=\"https:\/\/kemptechnologies.com\/\" rel=\"noopener\" target=\"_blank\">LoadMaster<\/a><\/li>\n<li><a href=\"https:\/\/www.zevenet.com\/\" rel=\"noopener\" target=\"_blank\">Zevenet<\/a><\/li>\n<li><a href=\"https:\/\/www.imperva.com\/products\/load-balancer\/\" rel=\"noopener\" target=\"_blank\">Incapsula<\/a><\/li>\n<\/ul>\n<p>tool&#8217;lar\u0131d\u0131r. Ayr\u0131ca <a href=\"https:\/\/github.com\/ThreeMammals\/Ocelot\" rel=\"noopener\" target=\"_blank\">Ocelot<\/a> k\u00fct\u00fcphanesinin de kendine ait bir load balancing hizmeti mevcuttur. Bizler sonraki i\u00e7eriklerimizde hem NGINX&#8217;de hem de Ocelot k\u00fct\u00fcphanesinde load balancing i\u015fleminin nas\u0131l ger\u00e7ekle\u015ftirildi\u011fini ayr\u0131 ayr\u0131 ele al\u0131yor olaca\u011f\u0131z.<\/p>\n<p>Ayr\u0131ca load balancer&#8217;lar sadece gelen trafi\u011fi sunuculara da\u011f\u0131tmakla yetinmezler ve kendilerine ba\u011fl\u0131 bulunan sunucular\u0131 devaml\u0131 \u015fekilde kontrol ederek isteklere yan\u0131t vermeyen problemli sunuculara trafik y\u00f6nlendirmesi yapmazlar! Yani bir nevi uygunluk kontrol\u00fc yaparak her gelen iste\u011fi cevaplayabilecek \u015fekilde sa\u011fl\u0131kl\u0131 sunuculara y\u00f6nlendirir ve b\u00f6ylece sunucu kaynakl\u0131 problem ya\u015fanmas\u0131 engellenmi\u015f olur. Ayr\u0131ca herhangi bir sunucu s\u0131k\u0131nt\u0131s\u0131 istemcilere fark ettirilmeden s\u00fcre\u00e7 sa\u011fl\u0131kl\u0131 bir \u015fekilde seyreder. Bu durumda olas\u0131 istek kay\u0131plar\u0131n\u0131 ortadan kald\u0131rmak i\u00e7in olduk\u00e7a kritik arz etmektedir.<\/p>\n<p>Haliyle load balancer i\u00e7in a\u015fa\u011f\u0131daki i\u015flevleri yerine getirir diyebiliriz :<\/p>\n<ul>\n<li>\u0130stemcilerden gelen istekleri, mevcudiyetteki sunuculara verimli bir \u015fekilde da\u011f\u0131tmaktad\u0131r,<\/li>\n<li>Yaln\u0131zca \u00e7evrimi\u00e7i olan sunuculara y\u00f6nlendirme sa\u011flayaca\u011f\u0131ndan dolay\u0131 kullan\u0131labilirlik ve g\u00fcvenilirlik sa\u011flar,<\/li>\n<li>Gerekti\u011finde sunucu ekleme yahut \u00e7\u0131karma esnekli\u011fi sa\u011flar.<\/li>\n<\/ul>\n<h3>Load Balancing Algoritmalar\u0131 Nelerdir?<\/h3>\n<p>Bir load balancing operasyonu, gelen iste\u011fin hangi \u015fartlarda hangi sunucuya iletilece\u011fini <em>Round Robin<\/em>, <em>Least Connection<\/em> ve <em>Source (IP Hash)<\/em> olmak \u00fczere \u00fc\u00e7 temel algoritma e\u015fli\u011finde belirlemektedir. Bu algoritmalar\u0131n ne oldu\u011funu ele al\u0131rsak e\u011fer :<\/p>\n<ul>\n<li><strong><em>Round Robin<\/em><\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-2-150x150.png\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?\" width=\"150\" height=\"150\" class=\"alignleft size-thumbnail wp-image-21830\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-2-150x150.png 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-2-160x160.png 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-2.png 218w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>Gelen istekleri sunuculara s\u0131ras\u0131yla da\u011f\u0131tan bir algoritmad\u0131r. Load balancer, da\u011f\u0131t\u0131m i\u015flemi esnas\u0131nda iste\u011fin g\u00f6nderildi\u011fi sunucuyu tutmakta ve sonraki istekleri itere ederek devam etmektedir. Sonuncu sunucuya gelindi\u011fi taktirde tekrardan ba\u015fa d\u00f6ner ve istekleri ayn\u0131 s\u0131rayla y\u00f6nlendirmeye devam eder.<br \/>\n<br \/>&nbsp;\n<\/li>\n<li><strong><em>Least Connection<\/em><\/strong><br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-3-150x150.png\" alt=\"Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) Nedir?\" width=\"150\" height=\"150\" class=\"alignleft size-thumbnail wp-image-21835\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-3-150x150.png 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-3-160x160.png 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2021\/05\/Load-BalancingYuk-Dengeleme-ve-Load-BalancerYuk-Dengeleyici-Nedir.-3-320x320.png 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>Load balancer, gelen iste\u011fi en az yo\u011funlukta ve aktif olan sunucuya y\u00f6nlendirir. Haliyle her sunucunun g\u00f6receli i\u015flem kapasitesi mevcut oldu\u011fundan dolay\u0131 bu algoritma, istek neticesinde a\u011f\u0131r ve uzun operasyonlar\u0131n yap\u0131laca\u011f\u0131 durumlar i\u00e7in \u00f6nerilmektedir.<br \/>\n<br \/>&nbsp;\n<\/li>\n<li><strong><em>Source (IP Hash)<\/em><\/strong><br \/>\nSource algoritmas\u0131, gelen iste\u011fin IP de\u011ferine g\u00f6re hangi sunucuda i\u015flenece\u011fini belirlememizi sa\u011flamaktad\u0131r. B\u00f6ylece her sunucu ayn\u0131 IP&#8217;den gelen istekleri i\u015fleyecektir. Ama\u00e7 sadece salt b\u00f6lmedir. Genellikle istemcilerin \u00f6ng\u00f6r\u00fclebilen i\u015flevsel hacimlerini sunuculara da\u011f\u0131tabilmek ve b\u00f6ylece her bir sunucuda farkl\u0131 i\u015flevleri icra edebilmek i\u00e7in tercih edilir.\n<\/li>\n<\/ul>\n<p>Bu temel algoritmalar\u0131n d\u0131\u015f\u0131nda kullan\u0131lan load balancer t\u00fcr\u00fcne g\u00f6re farkl\u0131 algoritmalar\u0131nda mevcudiyeti s\u00f6z konusu olabilmekte ve hatta \u00f6zelle\u015ftirilmi\u015f algoritmalar dahi t\u00fcretilebilmektedir.<\/p>\n<h3>Load Balancing ile Hangi Trafik T\u00fcrleri Dengelenebilir?<\/h3>\n<p>Load balancer&#8217;lar ile <em>HTTP<\/em>, <em>HTTPS<\/em>, <em>TCP<\/em> ve <em>UDP<\/em> olmak \u00fczere d\u00f6rt farkl\u0131 protokolden gelen trafik t\u00fcr\u00fc i\u00e7in dengeleme kurallar\u0131 olu\u015fturulabilmektedir.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"width:25%;\">HTTP<\/th>\n<th style=\"width:25%;\">HTTPS<\/th>\n<th style=\"width:25%;\">TCP<\/th>\n<th style=\"width:25%;\">UDP<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size:10px;vertical-align: text-top;\">Load balancer; HTTP protokol\u00fcnden gelen istekleri ilgili sunuculara y\u00f6nlendirirken, orjinal iste\u011fe dair bilgilere eri\u015febilmek i\u00e7in ilgili request&#8217;in header&#8217;\u0131na <em>&#8216;X-Forwarded-For&#8217;<\/em>, <em>&#8216;X-Forwarded-Proto&#8217;<\/em> ve <em>&#8216;X-Forwarded-Port&#8217;<\/em> de\u011ferlerini yerle\u015ftirerek y\u00f6nlendirir.<\/td>\n<td style=\"font-size:10px;vertical-align: text-top;\">HTTP ile ayn\u0131 s\u00fcre\u00e7 i\u015flemekte ve belirtilen anahtar de\u011ferler e\u015fli\u011finde y\u00f6nlendirme yap\u0131lmaktad\u0131r. Aradaki tek fark HTTPS&#8217;de ki \u015fifreleme s\u00fcre\u00e7leridir. Bu \u015fifreleme s\u00fcreci iki farkl\u0131 y\u00f6ntemle sa\u011flanmaktad\u0131r.<\/p>\n<p>1. y\u00f6ntem; \u015fifreleme SSL ile backend&#8217;e kadar korunur.<br \/>\n2. y\u00f6ntem; \u015fifreleme ve \u015fifre \u00e7\u00f6zme y\u00fck\u00fc ilgili sunucudan al\u0131narak load balancer&#8217;a y\u00fcklenir. B\u00f6ylece hem sunuculara daha az y\u00fck bindirilmi\u015f, hem de maliyetler azalt\u0131lm\u0131\u015f olur.<\/p>\n<p>SSL&#8217;in load balancer \u00fczerinde kurgulad\u0131\u011f\u0131 bu i\u015fleme <em style=\"color:red;\">SSL Offload<\/em> denmektedir.<\/td>\n<td style=\"font-size:10px;vertical-align: text-top;\">HTTP ve HTTPS&#8217;e nazaran TCP protokol\u00fcnden gelen isteklerde load balancing i\u015flemine tabii tutulabilmektedir.<\/td>\n<td style=\"font-size:10px;vertical-align: text-top;\">Son zamanlarda baz\u0131 load balancer yaz\u0131l\u0131mlar\u0131nda UDP protokol\u00fc i\u00e7in load balancing deste\u011fi eklenmi\u015ftir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Uygunluk Kontrolleri(Health Checks)<\/h3>\n<p>Load balancing uygulanan sistemlerde gelen isteklerin y\u00f6nlendirilebilmesi i\u00e7in ilgili sunucunun bu iste\u011fi kar\u015f\u0131layabilecek seviyede sa\u011fl\u0131kl\u0131 olmas\u0131 istenmektedir. Aksi taktirde sunucu listeden kald\u0131r\u0131l\u0131r ve mevcut hata onar\u0131l\u0131p, ortadan kald\u0131r\u0131l\u0131ncaya ve sonras\u0131nda tekrar yap\u0131lacak uygunluk kontrol\u00fcne cevap verinceye kadar trafik y\u00f6nlendirmelerinde kullan\u0131lmayacakt\u0131r.<\/p>\n<h3>Neden Load Balancing Kullan\u0131lmal\u0131d\u0131r?<\/h3>\n<p>Load balancing, elimizdeki uygulaman\u0131n eri\u015filebilirli\u011fini \u00fcst seviyeye \u00e7\u0131kar\u0131labilmekte ve olas\u0131 sunucu kesintilerinde istekleri di\u011fer sunuculara aktararak sunucu s\u00fcreklili\u011fi de sa\u011flayabilmektedir. Ayr\u0131ca d\u00f6nemsel olarak ya\u015fanabilirli\u011fi muhtemel olan trafik art\u0131\u015flar\u0131nda olabilecek eri\u015fim kesintileri yahut gecikmeler i\u00e7in de kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan geli\u015fmeler g\u00f6stermektedir. Tabi t\u00fcm bunlar\u0131n yan\u0131nda kullan\u0131c\u0131lardan gelen istek neticesinde yap\u0131lacak i\u015fin yo\u011funlu\u011funa g\u00f6re en uygun sunucularda icraat\u0131n sergilenmesi uygulama optimizasyonu a\u00e7\u0131s\u0131ndan olduk\u00e7a h\u0131zl\u0131 ve performansl\u0131 bir s\u00fcre\u00e7 sa\u011flayacakt\u0131r.<\/p>\n<blockquote><p><em>Genellikle load balancing s\u00fcrecinde uygulamalardaki kullan\u0131c\u0131 session bilgileri sunucular aras\u0131nda aktar\u0131lmad\u0131\u011f\u0131 i\u00e7in session d\u00fc\u015fmesi ya\u015fanmaktad\u0131r. Bu duruma istinaden session bilgilerinin ortak bir sunucuda yahut veritaban\u0131nda tutulmas\u0131 idealdir.<\/em><\/p><\/blockquote>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde, bundan sonraki i\u00e7eriklerimiz i\u00e7in teorik temel olarak kullanaca\u011f\u0131m\u0131z Load Balancing(Y\u00fck Dengeleme) ve Load Balancer(Y\u00fck Dengeleyici) \u00fczerine duruyor olaca\u011f\u0131z. Load Balancing&#8217;in ne oldu\u011fu, ne ama\u00e7la kullan\u0131ld\u0131\u011f\u0131, ne tarz algoritmalar\u0131 oldu\u011fu vs. gibi&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":21853,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2739,3573],"tags":[4260,4273,4262,4268,1715,4265,4264,4257,4266,4270,4274,4263,4275,4267,4258,4269,4271,4272,4259,4261,1716],"class_list":["post-21769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-core","category-microservices","tag-dikey-olceklendirme","tag-health-checks","tag-horizontal-scaling","tag-least-connection","tag-load-balancer","tag-load-balancer-calisma-prensibi","tag-load-balancer-nedir","tag-load-balancing","tag-load-balancing-algoritmalari","tag-load-balancing-algoritmalari-nelerdir","tag-load-balancing-health-checks","tag-load-balancing-nedir","tag-neden-load-balancing-kullanilmalidir","tag-round-robin","tag-scale-up","tag-source-ip-hash","tag-ssl-offload","tag-uygunluk-kontrolleri","tag-vertical-scaling","tag-yatay-olceklendirme","tag-yuk-dengeleme"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/21769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=21769"}],"version-history":[{"count":80,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/21769\/revisions"}],"predecessor-version":[{"id":21855,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/21769\/revisions\/21855"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/21853"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=21769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=21769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=21769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}