System Design mülakat sorusuOrtaZamanlama / Crawl
Bir web crawler tasarla
Web crawler tasarla: URL keşfet, sayfaları async çek, içerik/metadata’yı sonra arama/index için sakla.
Mülakat kapsamı
Üretici/Client → Gateway/LB → App → Message Queue; worker (App) kuyruğu tüketir; App → DB ve Object Storage. Client → Queue/DB yok.
Fonksiyonel gereksinimler
- Crawl edilecek URL’leri kuyruğa koy.
- Worker’lar sayfa çeker ve yeni link çıkarır.
- Sayfa içeriği veya metadata’sını kalıcı sakla.
Kalite ve ölçek hedefleri
- Crawl async olmalı — her HTTP fetch’i tek istek thread’inde bloklama.
- Kuyruk tüketen worker ekleyerek ölçeklen.
- Tek host’u sonsuza kadar dövme (yüksek seviye).
Kapasite varsayımı
Bu ölçeğe göre tasarla
Ayda ~100M sayfa ≈ ortalama ~40 sayfa/sn; tepeler daha yüksek — kuyruk + worker spike’ı yutar.
Diyagramdan fazlasını pratik et
Froquiz tuvalinde bileşenleri yerleştir, veri akışını bağla ve senaryoya özel incelemede eksik kararları gör. Ayrıntılı çözüm ve değerlendirme Premium ile açılır.
Premium'u incele →