İstehsalçıdan əvvəl ScyllaDB istifadə etmək antipattern-dir. Dublikatların düzgün şəkildə necə təşkil olunması lazımdır?
Golang
Gəlin, böyük bir reklam şəbəkəsi olduğumuzu fərz edək. Biz bütün dünyada tərəfdaş saytlarında bannerlər yerləşdiririk. Real vaxt rejimində hadisələrin toplanması və işlənməsi üçün bir sistem dizayn etməliyik. Bu məlumatlar iki məqsəd üçün çox vacibdir: Fakturalama: Kliklər üçün reklamverənlərdən pul tutulması. Analitika: Kampaniyaların hazırkı effektivliyini (CTR, göstərimlər) şəxsi paneldə göstərmək. Giriş məlumatları (yükü hesablamaq üçün) Özünüz tələb olunan gücü qiymətləndirməlisiniz (RPS, trafik, saxlama), aşağıdakı metriklərə əsaslanaraq: Tərəfdaş şəbəkəsi: 500,000 aktiv sayt. Trafik: Orta hesabla hər sayt 2 səhifə baxışı alır saniyədə. Reklam blokları: Hər səhifədə eyni vaxtda 3 banner göstərilir. Konversiya: Orta CTR (Click-Through Rate) 1%. Qeyri-bərabərlik: Pik yük (axşam saatları) orta ilə müqayisədə 4 dəfə çoxdur. Hadisənin ölçüsü: Hadisə obyekti (Banner ID, Sayt ID, UserID, Timestamp, hadisə növü) təxminən 500 bayt çəkir. Texniki tələblər Near Real-Time: Analitik interfeysində məlumatlar ən çox 10 saniyə gecikmə ilə görünməlidir. Etibarlılıq: Kliklərin itirilməsi qəbul edilmir (bu birbaşa pul itkisi deməkdir). Göstərimlərin itirilməsi 0.01%-ə qədər qəbul edilir. Ölçüləbilərlik: Sistem platformaların sayındakı artımla asanlıqla genişləndirilməlidir.
Niyə xam məlumatları S3 saxlama yaddaşında saxlamağa ehtiyacımız var? Redis-də TTL-ni 5 dəqiqə etmək düzgün müdür, yoxsa daha uzun müddət — 24 saat saxlamaq və məlumatların yoxlanması üçün ScyllaDB-dən istifadə etmək daha yaxşıdır?