Sobes.tech

Golang

Het gebruik van ScyllaDB vóór de producer is een antipattern. Hoe organiseer je deduplicatie op de juiste manier?

Senior
153

Waarom moeten we ruwe gegevens opslaan in S3-opslag? Is het correct om een TTL van 5 minuten op Redis te gebruiken, of is het beter om langer te bewaren — 24 uur, en ScyllaDB te gebruiken als bron voor gegevenscontrole?

Senior
142

Stel dat we een groot advertentienetwerk zijn. We plaatsen banners op partnerwebsites over de hele wereld. We moeten een systeem ontwerpen voor het verzamelen en verwerken van gebeurtenissen in realtime. Deze gegevens zijn cruciaal voor twee doelen: Facturering: Geld afschrijven van adverteerders voor klikken. Analyse: Het tonen van de huidige campagneprestaties (CTR, vertoningen) in het dashboard. Invoerdata (voor het berekenen van de belasting) U moet zelf de vereiste capaciteit inschatten (RPS, verkeer, opslag), op basis van de volgende metrics: Partnernetwerk: 500.000 actieve sites. Verkeer: Gemiddeld krijgt elke site 2 paginaweergaven per seconde. Advertentiebanners: Op elke pagina worden 3 banners tegelijk weergegeven. Conversie: De gemiddelde CTR (Click-Through Rate) is 1%. Onregelmatigheid: Piekbelasting (avonduren) is 4 keer hoger dan gemiddeld. Grootte van gebeurtenis: Het object van de gebeurtenis (Banner ID, Site ID, UserID, Timestamp, type gebeurtenis) weegt ongeveer 500 bytes. Technische vereisten Near Real-Time: Gegevens in de analytische interface moeten verschijnen met een vertraging van niet meer dan 10 seconden. Betrouwbaarheid: Het verlies van klikken is niet acceptabel (dit betekent direct verlies van geld). Verlies van vertoningen (impressions) is acceptabel tot 0,01%. Schaalbaarheid: Het systeem moet gemakkelijk uitbreidbaar zijn naarmate het aantal platforms toeneemt.

Senior
139