---
title: 'Yük Dengeleyiciler'
source: 'https://academia.sh/tr/kurslar/bulut-hesaplama-ve-ag/yuk-dengeleyiciler'
course: 'Bulutta Hesaplama ve Ağ'
language: tr
updated: '2026-08-17T18:06:57+00:00'
license: 'CC BY-SA 4.0'
---

# Yük Dengeleyiciler

Yük dengeleyicide katman seçiminin ne belirlediği: aktarım katmanının iki alan görüp beş kuraldan birini uygulayabilmesi ve bin iki yüz isteğin bin yirmi dördünü yanlış havuza göndermesi, kapı ayrımının bunu altı yüz elli üçe indirirken istemciye iki kalem yazması, uygulama katmanının beş kuralı da uygulayıp anahtar kopyasını altıdan bire indirmesi ve sonlandırma noktasını altıdan yediye çıkarması, sağlık denetimi eşiğinin fark etme süresi ile yanlış çıkarma arasında kurduğu takas.

Bir önceki ders trafiği filtreledi: hangi kaynaktan hangi kapıya gelen isteğin geçeceği kural
kural yazıldı ve geçmeyenler sayıldı. Filtreden geçen istek artık ağın içindedir.

Geçen isteğin **hangi örneğe** gideceği hâlâ belirsiz. Ölçüm ağının panosunu altı örnek
sunuyor; bunlardan biri şu anda yeniden başlıyor, biri yüksek yükte, biri de yeni açılmış ve
henüz hazır değil. İsteği bir örneğe bağlayan şey yük dengeleyicidir.

Dengeleme algoritmaları — sırayla dağıtım, en az bağlantı, oturum yapışkanlığı — ve sağlık
denetiminin ne olduğu daha önce ölçüldü; bu ders o mekaniği tekrarlamaz. Kiralanan katmanda
elde kalan karar başkadır: dengeleyicinin **hangi katmanda** çalışacağı. Katman, dengeleyicinin
isteğin neresini görebileceğini belirler ve gördüğü bilgi kadar yönlendirme yapabilir. Burada
ölçülen üç şeydir: her katmanın gördüğü alan ve uygulayabildiği kural, uygulama katmanının
eklediği tur ile açtığı sonlandırma noktası, ve sağlık denetimi eşiğinin taranması.

- **BA31.** Kurgu bölgesel ölçüm ağı: iki ana ad (`pano`, `varlik`), beş içerik yolu, altı arka
  uç örneği. İstek akışı kendi üretecimizle üretilir; tohum `30631` görünürdür ve koşumdan
  koşuma aynı diziyi verir. Bin iki yüz istek.
- **BA32.** Operatörün niyeti beş kuralda yazılıdır: iki yol öneki, bir ana ad, bir yönetim yolu
  ve bir varsayılan. Kurallar sırayla denenir, eşleşen ilki kazanır.
- **BA33.** Aktarım katmanı dengeleyicisi yalnız **adres ve kapıyı** görür; uygulama katmanı
  adres, kapı, yol, ana ad ve oturum alanını görür. Kapı ayrımı düzeninde istemci varlık ve
  yönetim trafiğini ayrı kapılara gönderir — bu, istemci tarafında değişen kalemdir.
- **BA34.** El sıkışma turu, sonlandırma noktası ve anahtar kopyası sayıları model sabitidir:
  aktarım katmanı bağlantıyı geçirir (bir tur, anahtar altı arka uçta), uygulama katmanı
  bağlantıyı sonlandırıp arkaya yenisini açar (iki tur, anahtar dengeleyicide).
- **BA35.** Sağlık denetimi modeli altı örnek ve üç yüz denetim turudur; üçüncü örnek yüz
  yirminci turda kalıcı olarak bozulur. Sağlıklı örnekte geçici sapma olasılığı her denetimde
  bağımsızdır ve aralıktan etkilenmez; tohum `41129`.
- **BA36.** Örnek eşik kadar ardışık başarısız denetimden sonra trafikten çıkarılır, iki ardışık
  başarılı denetimden sonra geri alınır. Model süre ölçmez; saniye değerleri tur sayısı ile
  denetim aralığının çarpımıdır.

```js
// dengeleyici/katman.mjs — model: yuk dengeleyici katman secimi ve saglik denetimi esigi.
// Kurgu bolgesel olcum aginin istek akisi kendi uretecimizle uretilir; tohum gorunur.
// Dengeleme algoritmasi yeniden tanimlanmaz; olculen sey katmanin gordugu bilgi, o bilgiyle
// yapabildigi yonlendirme ve actigi yuzeydir.
const TOHUM = 30631, ISTEK = 1200, ARKA_UC = 6;
// [yol, ana ad, agirlik, operatorun istedigi havuz]
const AKIS = [
  ["/harita/bolge", "pano", 30, "harita"], ["/sayac/liste", "pano", 25, "sayac"],
  ["/gecelik/ozet", "pano", 15, "genel"], ["/varlik/logo.png", "varlik", 20, "varlik"],
  ["/yonetim/dugum", "pano", 10, "yonetim"],
];
const TOPLAM = AKIS.reduce((a, x) => a + x[2], 0);
// [bakilan alan, deger, havuz] — kurallar sirayla denenir, sonuncusu varsayilandir
const KURAL = [["yol", "/harita", "harita"], ["yol", "/sayac", "sayac"],
  ["ad", "varlik", "varlik"], ["yol", "/yonetim", "yonetim"], ["kapi", "*", "genel"]];
const KAPILI = ["varlik", "yonetim"];         // kapi ayriminda ayri kapiya alinan havuzlar
const uretec = (t) => { let s = t >>> 0; return () => (s = (Math.imul(s, 1664525) + 1013904223) >>> 0) / 4294967296; };
const sec = (u) => { let e = u * TOPLAM; return AKIS.find((x) => (e -= x[2]) < 0) ?? AKIS[0]; };

function kosu({ alanlar, ayrim }) {
  const r = uretec(TOHUM);
  let dogru = 0, yanlis = 0, bakilan = 0;
  for (let i = 0; i < ISTEK; i += 1) {
    const [yol, ad, , hedef] = sec(r());
    let giden = "genel";
    if (alanlar.includes("yol")) {              // uygulama katmani: kural zinciri yurutulur
      for (const [alan, deger, havuz] of KURAL) {
        bakilan += 1;
        if (alan === "kapi" || (alan === "yol" ? yol.startsWith(deger) : ad === deger)) { giden = havuz; break; }
      }
    } else {                                    // aktarim katmani: yalniz kapiya bakilir
      bakilan += 1;
      giden = ayrim && KAPILI.includes(hedef) ? hedef : "genel";
    }
    if (giden === hedef) dogru += 1; else yanlis += 1;
  }
  const kural = KURAL.filter(([alan, , havuz]) =>
    alanlar.includes(alan) || (ayrim && KAPILI.includes(havuz))).length;
  return { dogru, yanlis, bakilan, kural };
}

// [ad, gorulen alanlar, kapi ayrimi, el sikisma turu, sonlandirma noktasi, anahtar kopyasi]
const DUZEN = [
  ["aktarim/tek kapi", ["adres", "kapi"], false, 1, ARKA_UC, ARKA_UC],
  ["aktarim/kapi ayrimi", ["adres", "kapi"], true, 1, ARKA_UC, ARKA_UC],
  ["uygulama katmani", ["adres", "kapi", "yol", "ad", "oturum"], false, 2, ARKA_UC + 1, 1],
];
const E = [22, 13, 16, 13, 13, 15];
const yaz = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](E[i])).join("");
console.log(yaz(["duzen", "gorulen alan", "uygulanan kural", "dogru havuz", "yanlis havuz",
  "istemci kalemi"]));
const O = [];
for (const [ad, alanlar, ayrim] of DUZEN) {
  const o = kosu({ alanlar, ayrim });
  O.push(o);
  console.log(yaz([ad, alanlar.length, o.kural, o.dogru, o.yanlis, ayrim ? KAPILI.length : 0]));
}
const P = [22, 14, 16, 20, 16];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](P[i])).join("");
console.log("\n" + yaz2(["duzen", "el sikisma tur", "bakilan alan", "sonlandirma noktasi",
  "anahtar kopyasi"]));
DUZEN.forEach(([ad, , , tur, son, anahtar], i) =>
  console.log(yaz2([ad, tur, O[i].bakilan, son, anahtar])));

// --- Saglik denetimi esigi ------------------------------------------------------
// Model: alti ornek, uc yuz denetim turu. Ucuncu ornek 120. turda kalici olarak bozulur.
// Saglikli ornekte gecici sapma olasiligi her denetimde bagimsizdir ve araliktan etkilenmez.
const ORNEK = 6, DENETIM = 300, BOZULMA = 120, SAPMA = 0.06, TOHUM2 = 41129, BOZUK = 3;
function saglik(esik) {
  const r = uretec(TOHUM2);
  const ardisik = Array(ORNEK).fill(0), disarida = Array(ORNEK).fill(false);
  const basarili = Array(ORNEK).fill(0);
  let farkTur = 0, yanlisCikarma = 0, kayipTur = 0;
  for (let t = 1; t <= DENETIM; t += 1) {
    for (let o = 0; o < ORNEK; o += 1) {
      const kalici = o === BOZUK && t >= BOZULMA;
      const basarisiz = (r() < SAPMA) || kalici;
      if (basarisiz) { ardisik[o] += 1; basarili[o] = 0; } else { ardisik[o] = 0; basarili[o] += 1; }
      if (!disarida[o] && ardisik[o] >= esik) {
        disarida[o] = true;
        if (kalici) { if (farkTur === 0) farkTur = t; } else yanlisCikarma += 1;
      } else if (disarida[o] && basarili[o] >= 2) disarida[o] = false;
      if (disarida[o] && !kalici) kayipTur += 1;
    }
  }
  return { farkTur, yanlisCikarma, kayipTur };
}
const S = [12, 8, 17, 16, 17, 20, 13];
const yaz3 = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](S[i])).join("");
console.log("\n" + yaz3(["aralik(sn)", "esik", "fark etme turu", "fark etme(sn)", "yanlis cikarma",
  "kayip kapasite(sn)", "denetim/dk"]));
for (const aralik of [2, 5, 10]) {
  for (const esik of [1, 2, 3]) {
    const s = saglik(esik);
    console.log(yaz3([aralik, esik, s.farkTur, (s.farkTur - BOZULMA + 1) * aralik,
      s.yanlisCikarma, s.kayipTur * aralik, (60 / aralik) * ORNEK]));
  }
}
```

```
duzen                  gorulen alan uygulanan kural  dogru havuz yanlis havuz istemci kalemi
aktarim/tek kapi                  2               1          176         1024              0
aktarim/kapi ayrimi               2               3          547          653              2
uygulama katmani                  5               5         1200            0              0

duzen                 el sikisma tur    bakilan alan sonlandirma noktasi anahtar kopyasi
aktarim/tek kapi                   1            1200                   6               6
aktarim/kapi ayrimi                1            1200                   6               6
uygulama katmani                   2            3075                   7               1

aralik(sn)      esik   fark etme turu   fark etme(sn)   yanlis cikarma  kayip kapasite(sn)   denetim/dk
2                  1              120               2               78                 330          180
2                  2              121               4                2                   8          180
2                  3              122               6                0                   0          180
5                  1              120               5               78                 825           72
5                  2              121              10                2                  20           72
5                  3              122              15                0                   0           72
10                 1              120              10               78                1650           36
10                 2              121              20                2                  40           36
10                 3              122              30                0                   0           36
```

## Görülen Alan, Uygulanabilen Kural

Birinci tablonun ilk sütunu katmanın gördüğü alan sayısıdır: aktarım katmanı **iki**, uygulama
katmanı **beş**. İkinci sütun bu görüşle uygulanabilen kural sayısıdır.

Operatörün yazdığı beş kuraldan aktarım katmanı yalnız **birini** uygulayabiliyor: varsayılanı.
Diğer dördü yola ya da ana ada bakıyor ve aktarım katmanı bu iki alanı hiç görmüyor. Sonuç
üçüncü sütunda: bin iki yüz isteğin yalnız **yüz yetmiş altısı** operatörün istediği havuza
gitti, **bin yirmi dördü** yanlış havuza düştü. Doğru gidenler yalnızca zaten varsayılana ait
olan gecelik özet istekleridir.

Bu, yanlış yapılandırma değildir. Kural yazılmıştır ve doğrudur; dengeleyici kuralın baktığı
alanı görmediği için uygulayamaz. Beş kurallık bir niyet, iki alanlık bir görüşe sığmıyor.

İkinci satır bu sıkışmanın bilinen çözümünü ölçüyor: **kapı ayrımı**. Varlık trafiği bir kapıya,
yönetim trafiği başka bir kapıya alınıyor. Aktarım katmanı kapıyı gördüğü için bu iki kuralı
artık uygulayabiliyor — uygulanan kural sayısı bire değil **üçe** çıkıyor, doğru havuza giden
istek yüz yetmiş altıdan **beş yüz kırk yediye** yükseliyor.

Kazanç son sütunda ödeniyor. Kapı ayrımı dengeleyicide değil, **istemcide** bir değişikliktir:
iki kalem istemci yapılandırması değişti. Harita ile sayaç istekleri ise hâlâ aynı ana ada, aynı
kapıya geliyor — bunları kapıyla ayırmanın yolu yok, altı yüz elli üç istek yanlış havuzda
kalıyor.

Üçüncü satırda uygulama katmanı beş alanı görüyor, beş kuralı da uyguluyor, yanlış havuza giden
istek **sıfır**, istemcide değişen kalem **sıfır**.

## Uygulama Katmanının Faturası

İkinci tablo aynı üç düzenin bedelini sayıyor.

Bakılan alan sütunu hesaplanmıştır: aktarım katmanı her istekte tek alana bakıyor (kapı),
toplam **bin iki yüz** bakış. Uygulama katmanı kural zincirini eşleşene kadar yürütüyor —
harita isteği birinci kuralda, sayaç ikincide, varlık üçüncüde, yönetim dördüncüde, gecelik özet
ise beşinci kurala kadar iniyor. Ağırlıklı toplam **üç bin yetmiş beş** bakış, iki buçuk katı.
Zincirin **sırası** ölçülebilir bir şeydir: ağır trafiği başa almak bu sayıyı düşürür.

El sıkışma turu sütunu daha keskin. Aktarım katmanı bağlantıyı geçirir: şifreli oturum istemci
ile arka uç arasında kurulur, dengeleyici baytları taşır, tur sayısı **bir**. Uygulama katmanı
isteğin yolunu okumak zorundadır ve okumak için şifreyi çözmek zorundadır: oturum dengeleyicide
sonlanır, arkaya ikinci bir oturum açılır, tur sayısı **iki**.

Son iki sütun bu zorunluluğun iki yüzünü gösteriyor ve ikisi ters yöne bakıyor.

Anahtar kopyası aktarım katmanında **altıdır**: şifre arka uçta sonlandığı için özel anahtarın
altı örneğin her birinde durması gerekir. Anahtarı değiştirmek altı makineye dokunmak demektir.
Uygulama katmanında anahtar kopyası **bire** iner — anahtar yalnız dengeleyicidedir.

Sonlandırma noktası ters yöne gidiyor: altıdan **yediye**. İsteğin baş kısmı önce dengeleyicide
düz metne dönüyor, sonra arka uçta bir daha. Eklenen nokta öbür altısına benzemez:
**kiralanan bileşendir**. Yolu, ana adı, oturum çerezini ve isteği yapan adresi gören,
işletilmeyen bir bileşen zincire girdi. O bileşen bu alanları kendi günlüğüne de yazar ve
günlüğün nerede durduğu bu dersin kararları arasında değildir.

Takas tek cümlede sayılabilir: anahtar kopyası altıdan bire, sonlandırma noktası altıdan yediye,
yanlış yönlendirme bin yirmi dörtten sıfıra.

## Sağlık Denetiminin Üç Sayısı

Üçüncü tablo dengeleyicinin ikinci işini ölçüyor. Kiralanan dengeleyicide sağlık denetiminin
nasıl çalıştığı sağlayıcının işidir; elde kalan üç sayıdır: **aralık**, **eşik** ve denetim yolu.
Tarama bu üç sayıdan ikisini geziyor.

Fark etme turu eşiğe bağlı ve aralıktan bağımsızdır: eşik bir iken bozuk örnek yüz yirminci
turda, eşik üç iken yüz yirmi ikinci turda çıkarılıyor. Aynı tur sayısı, aralık iki saniyeyken
**iki ila altı saniyeye**, aralık on saniyeyken **on ila otuz saniyeye** karşılık geliyor. Bozuk
örneğin trafik almaya devam ettiği süre budur.

Yanlış çıkarma sütunu ters yönde çalışıyor. Eşik bir iken **yetmiş sekiz** kez sağlıklı bir
örnek trafikten çıkarıldı: tek bir başarısız denetim, geçici bir sapma, ve örnek dışarı alındı.
Eşik ikiye çıktığında bu sayı **ikiye**, üçe çıktığında **sıfıra** iniyor.

Kayıp kapasite sütunu yanlış çıkarmanın faturasıdır. Eşik bir ve aralık on iken **bin altı yüz
elli saniye**: altı örnekten biri sırayla dışarı alınıp geri kondu ve yaklaşık yirmi sekiz
dakika boyunca kapasite eksik çalıştı. Aynı satırda bozuk örnek on saniyede fark edilmişti. On
saniyelik kazanç için bin altı yüz elli saniyelik kapasite ödendi.

Son sütun üçüncü bedeli sayıyor: aralığı kısaltmak denetim isteğini çoğaltır. Aralık on iken
dakikada otuz altı denetim isteği, aralık iki iken **yüz seksen**. Bu istekler arka uca iner ve
denetim yolu ucuz değilse ölçülebilir yük oluşturur.

Üç sütun birlikte okunduğunda düzen ortaya çıkıyor: **aralık hızı belirler ve yükü ödetir, eşik
doğruluğu belirler ve gecikmeyi ödetir.** Eşiği üçte tutup aralığı ikiye indirmek altı saniyede
fark etme, sıfır yanlış çıkarma ve dakikada yüz seksen denetim isteği verir. Eşik bir ve aralık
iki iki saniyede fark ediyor ama üç yüz otuz saniye kapasite kaybediyor: dört saniyelik fark,
üç yüz otuz saniyeye mal oluyor.

## Elde Kalan Karar

Kiralanan dengeleyicide sağlayıcının devraldığı kalemler bellidir: dağıtım algoritmasının
uygulaması, dengeleyicinin kendi kapasitesi ve ölçeklenmesi, bağlantı kuyruğunun sınırları,
düğümlerin nereye yerleştiği. Bunların hiçbiri bu derste ölçülmedi, çünkü üzerlerinde karar yok.

Elde kalan dokuz kalem sayılabilir: katman, kural zinciri ve sırası, arka uç havuzlarının
tanımı, sağlık denetimi yolu, aralık, eşik, zaman aşımı, anahtarın nerede duracağı, oturum
yapışkanlığı. Sekizi her an değişir.

Dokuzuncusu değişmez. **Katman, dengeleyici yaratıldığında sabitlenir.** Aktarım katmanı
dengeleyicisi sonradan uygulama katmanına dönmez; dönüştürme diye bir işlem yoktur. Yapılan şey
yeni bir dengeleyici yaratmak, ona yeni bir uç adı verilmesini beklemek ve bütün istemcileri o
ada taşımaktır. Bu dersin **geri alınamayan kalemi** budur.

Bedeli tabloda duruyor. Aktarım katmanıyla başlayan bir kurulum bin yirmi dört yanlış
yönlendirmeyi kapı ayrımıyla altı yüz elli üçe indirebilir ve bunun için istemcide iki kalem
değiştirir. Kalan altı yüz elli üçü kapatmak katman değiştirmek, katman değiştirmek de
istemcinin bağlandığı adı değiştirmektir: kapı ayrımı için dokunulan iki kalem yeniden
dokunulacaktır.

## Özet

- Aktarım katmanı iki alan (adres, kapı) görüyor ve beş kuraldan yalnız varsayılanı
  uygulayabiliyor; bin iki yüz isteğin bin yirmi dördü yanlış havuza düştü. Uygulama katmanı beş
  alan görüyor, beş kuralı da uyguluyor, yanlış yönlendirme sıfır.
- Kapı ayrımı aktarım katmanına iki kural kazandırdı ve doğru yönlendirmeyi yüz yetmiş altıdan
  beş yüz kırk yediye çıkardı; bedeli istemcide değişen iki kalem oldu ve aynı ada gelen harita
  ile sayaç trafiği ayrılamadı.
- Uygulama katmanı bakılan alanı bin iki yüzden üç bin yetmiş beşe, el sıkışma turunu birden
  ikiye çıkardı; anahtar kopyasını altıdan bire indirirken sonlandırma noktasını altıdan yediye
  çıkardı ve eklenen nokta kiralanan bileşenin kendisidir.
- Sağlık denetiminde eşiği birden üçe çıkarmak yanlış çıkarmayı yetmiş sekizden sıfıra indirdi
  ve fark etme süresini eşik sayısı kadar tur uzattı; aralık hızı belirleyip denetim yükünü
  ödetiyor, eşik doğruluğu belirleyip gecikmeyi ödetiyor.
- Eşik bir ve aralık on düzeninde bozuk örnek on saniyede fark edildi ama bin altı yüz elli
  saniyelik sağlıklı kapasite boşuna dışarıda kaldı; on saniyelik kazancın bedeli budur.
- Elde kalan dokuz kalemden sekizi her an değişir; katman değişmez. Katmanı değiştirmek yeni
  bir dengeleyici ve yeni bir uç adı demektir — bu dersin geri alınamayan kalemi.

## Sonraki Adım

Bu ders dengeleyiciyi kurdu ve arkasındaki altı örneği trafiğe bağladı. Bütün ölçümler tek bir
şeyi sabit varsaydı: istemcinin bağlandığı **uç**.

O uç sabit değildir. Örnek değiştiğinde adresi değişir, dengeleyici yeniden yaratıldığında adı
değişir, ölçekleme grubunun eklediği her örnek yeni bir adresle gelir. İstemcinin elinde ise tek
bir adres ya da tek bir ad vardır ve o değer yapılandırma dosyasında, izleme hedefinde, üçüncü
tarafın izin listesinde ayrı ayrı yazılıdır.

Sonraki ders adres kararlılığını üç düzende karşılaştırır: adresin örnekle birlikte gitmesi,
ayrı bir kaynak olarak taşınması ve ada bağlanması. Ölçülen şey istemcinin değişimi kaç saniyede
fark ettiği, elle güncellenen kaç kalem olduğu ve bayat adrese kaç isteğin gittiğidir. Kalıcı
adresin kendi bedeli de sayılır: sayısı sınırlıdır, taşınması bir işlemdir ve kullanılmayanı da
ücret yazar.
