System Design & Dağıtık Sistemler
Ölçek bir sayı değil, bir dizi taviz
REST tasarımı, indeksleme, Redis ile caching, Kafka, consistent hashing, rate limiting ve backpressure.
16 ders 151 dk toplam süre Sertifikan
Bu konunun dersleri şu çalışma yollarında: Üretimde Ayakta Kalmak (11) , Adım Adım Backend (7) , Veriyle Barışmak (1) , Derin Sular (1)
Başlangıç
Orta
- 1/3 yıldız2/3 yıldız3/3 yıldız SQL İndeksleme ve EXPLAIN İndeks kitabın arkasındaki dizin gibidir: sorguyu sihirle hızlandırmaz, daha az sayfa okutur. Veritabanı indeksi kullanmıyorsa üç ayrı sebep olabilir ve bunların ikisi indeksin kendisiyle ilgili değildir. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Rate Limiting — Kapıdan Saniyede Kaç Kişi Geçer? İstekleri anahtar başına sınırlamak servisi hem kötü niyetten hem de istemcilerin kazara yağdırdığı isteklerden korur. Sınırı aşan 429 ve ne zaman döneceğini alır. Asıl karar, sayacın nasıl saydığı ve nerede durduğu. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Cache Stratejileri — Defter Ne Zaman Yalan Söyler? Cache, uzaktaki veritabanının yanında duran hızlı bir defterdir. Okurken önce deftere bakılır, yazarken defterdeki not güncellenmez, silinir. Yine de eski bir not araya sızabilir; TTL onun ne kadar yaşayacağını sınırlar. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Yük Dengeleme — Trafik Artınca Kapıya Kim Bakar? Tek sunucu yetmeyince servisin kopyaları çalıştırılır ve önlerine trafiği dağıtan bir yük dengeleyici konur. Algoritma yavaşlayanı ne kadar kullanacağını, health check ise öleni ne kadar çabuk fark edeceğini belirler. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız SLO ve Hata Bütçesi — Ne Kadar Bozuk Olmaya İzin Var? ✦ yeni Hiçbir sistem her zaman çalışmaz. SLO, servisin ne kadar güvenilir olacağına dair hedeftir; tamamlayıcısı hata bütçesidir. Yüzde 99.9 bir ayda 43.2 dakika kesinti demektir ve her dokuz bu payı on kat küçültür. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Backpressure ve Yük Atma — Kuyruk Dolarsa Ne Olur? ✦ yeni Bir kuyruk kısa bir patlamayı emer, ama sürekli fazla yükü çözmez: yalnızca geciktirir. Sınırsız kuyrukta bekleme süresi ve bellek durmadan büyür. Sınırlı kuyruk ya fazlasını hızlıca reddeder ya da çağıranı yavaşlatır. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Retry, Backoff ve Jitter — Herkes Aynı Anda Tekrar Denerse ✦ yeni Tekrar denemek kısa hataları kurtarır, ama herkes aynı anda tekrar denerse düzelmek üzere olan servisi yeniden düşürür. Exponential backoff aralıkları açar, jitter ise denemeleri zamana yayar. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Bloom Filter — "Kesinlikle Yok" mu, "Belki Var" mı? ✦ yeni Bloom filter, bir şeyin bir kümede olup olmadığını çok az bellekle cevaplar: ya "kesinlikle yok" ya da "belki var". Hiçbir zaman var olanı kaçırmaz, ama bazen yanlış alarm verir. Boyu ve hash sayısı bu oranı belirler. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız CDN ve Kenar Önbellek — Kampanya Sayfası Hızlansın, Hesap Sayfası Karışmasın ✦ yeni CDN, sayfaların kopyasını kullanıcılara yakın kenar sunucularda tutar. Herkese açık sayfalar orada hızlanır; kişisel bir sayfa oraya girerse müşteri başkasının hesabını görür. Kişisel olanı önbelleğe alma, yayında eskiyi temizle. 9 dk
İleri
- 1/3 yıldız2/3 yıldız3/3 yıldız Kafka — Partition, Consumer Group ve Lag Kafka'da bir konu, kasalara benzeyen bölümlere (partition) ayrılır ve kaç kasa varsa o kadar iş aynı anda yapılır. Kasadan fazla kasiyer eklemek hızlandırmaz, fazlası boş bekler. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız URL Kısaltıcı Tasarımı — Parçaları Tek Sistemde Birleştirmek Bir sistemi tasarlamak kutu çizmekle değil, birkaç çarpmayla başlar. URL kısaltıcıda sayılar okuma ağırlıklı bir sistem gösterir; asıl sorular kısa kodun nasıl üretileceği ve yönlendirmenin nasıl hızlı tutulacağıdır. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Dağıtık Kilit ve Fencing Token — Kilit Senin Sandığında ✦ yeni Süreli bir dağıtık kilit, sahibi uzun süre durursa sessizce başkasına geçer. Uyanan eski sahip kilidin hâlâ kendisinde olduğunu sanır ve yazar. Fencing token ile kararı yazılan yer verir: eski numarayla gelen yazma reddedilir. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Lider Seçimi ve Split-Brain — Ağ Bölününce Kim Karar Verir? ✦ yeni Bir kümede yazmaları tek bir lider kabul eder. Ağ bölününce iki taraf da kendini lider sanabilir ve aynı veriye iki farklı geçmiş yazılır. Çözüm iki kural: lider çoğunluk oyuyla seçilir, yazma çoğunluğa ulaşınca onaylanır. 10 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Mantıksal Saatler — Sunucuların Saati Farklıysa Hangisi Önce Oldu? ✦ yeni Farklı makinelerin saatleri birkaç milisaniye, bazen saniyeler kayar; zaman damgasına göre sıralanan bir kayıt, sonucu sebebinden önce gösterebilir. Lamport sayacı sebebi hep önce koyar, vektör saati eşzamanlı olanı da söyler. 9 dk
- 1/3 yıldız2/3 yıldız3/3 yıldız Çok Bölgeli Kurulum — Bir Bölge Kararınca Banka Çalışmaya Devam Eder mi? ✦ yeni Tek bölge kararınca bütün müşteriler bekler. Bekleyen kopya devralır ama gecikmeli kopyada son yazmalar kaybolur. İki bölge de her hesaba yazarsa para iki kez çekilebilir; her hesaba bir ev bölgesi vermek bunu önler. 8 dk