Sobes.tech

Golang

ScyllaDB'yi üretici öncesinde kullanmak bir antipattern'dir. Doğru şekilde deduplikasyonu nasıl organize edersiniz?

Senior
152

Diyelim ki biz büyük bir reklam ağıyız. Ortak sitelere dünya genelinde bannerlar yerleştiriyoruz. Gerçek zamanlı olay toplama ve işleme sistemi tasarlamamız gerekiyor. Bu veriler iki amaç için kritik önemdedir: Faturalama: Tıklamalar için reklamverenlerden para tahsilatı. Analitik: Kampanyaların güncel etkinliğini (CTR, gösterimler) kişisel panelde gösterme. Girdi verileri (yükü hesaplamak için) Aşağıdaki metriklere dayanarak gereken kapasiteyi kendiniz tahmin etmelisiniz: Ortak ağ: 500.000 aktif site. Trafik: Her sitede ortalama 2 sayfa görüntüleme/saniye. Reklam blokları: Her sayfada aynı anda 3 banner gösteriliyor. Dönüşüm: Ortalama CTR (Click-Through Rate) %1. Düzensizlik: Pik yük (akşam saatleri) ortalamanın 4 katıdır. Olay boyutu: Olay nesnesi (Banner ID, Site ID, UserID, Timestamp, olay tipi) yaklaşık 500 bayt tutar. Teknik gereksinimler Yaklaşık Gerçek Zamanlı: Analitik arayüzündeki veriler en fazla 10 saniye gecikmeyle görünmelidir. Güvenilirlik: Tıklama kaybı kabul edilemez (bu doğrudan para kaybı anlamına gelir). Gösterim kaybı %0.01'e kadar kabul edilebilir. Ölçeklenebilirlik: Sistem, platform sayısındaki artışla kolayca genişletilmelidir.

Senior
139

Neden ham verileri S3 depolama alanında saklamamız gerekiyor? Redis'te TTL'yi 5 dakika yapmak doğru mu, yoksa daha uzun süre — 24 saat saklamak ve veri doğrulama kaynağı olarak ScyllaDB kullanmak mı daha iyi?

Senior
131