Sobes.tech

Golang

L'uso di ScyllaDB prima del produttore è un antipattern. Come organizzare correttamente la deduplicazione?

Senior
177

Perché dobbiamo archiviare i dati grezzi nello storage S3? È corretto usare TTL di 5 minuti su Redis, o è meglio conservarli più a lungo, ad esempio 24 ore, e usare ScyllaDB come fonte di verifica dei dati?

Senior
149

Supponiamo di essere una grande rete pubblicitaria. Posizioniamo banner sui siti partner in tutto il mondo. Dobbiamo progettare un sistema di raccolta e elaborazione degli eventi in tempo reale. Questi dati sono critici per due scopi: Fatturazione: Deduzione di denaro dagli inserzionisti per clic. Analisi: Visualizzazione dell'efficacia attuale delle campagne (CTR, impressioni) nel pannello di controllo. Dati di input (per il calcolo del carico) Devi stimare autonomamente le capacità richieste (RPS, traffico, archiviazione), sulla base delle seguenti metriche: Rete partner: 500.000 siti attivi. Traffico: In media, ogni sito riceve 2 visualizzazioni di pagina al secondo. Blocchi pubblicitari: Su ogni pagina vengono visualizzati 3 banner contemporaneamente. Conversione: La CTR media è del 1%. Irregolarità: Il carico di picco (ore serali) è 4 volte superiore alla media. Dimensione dell'evento: L'oggetto dell'evento (ID banner, ID sito, UserID, Timestamp, tipo di evento) pesa circa 500 byte. Requisiti tecnici Near Real-Time: I dati nell'interfaccia analitica devono apparire con un ritardo non superiore a 10 secondi. Affidabilità: La perdita di clic non è accettabile (questo comporta una perdita di denaro). La perdita di impressioni è ammessa fino allo 0,01%. Scalabilità: Il sistema deve poter essere facilmente espanso con la crescita del numero di piattaforme.

Senior
142