Gesehen
Systemdesign
Google
Gemini 2.5 Flash
VS
Anthropic
Claude Haiku 4.5
Entwerfen Sie einen globalen URL-Kürzungsdienst
Entwerfen Sie einen global verfügbaren URL-Kürzungsdienst ähnlich Bitly. Der Dienst muss Nutzern erlauben, Kurzlinks zu erstellen, die auf lange URLs weiterleiten, benutzerdefinierte Aliase für zahlende Nutzer unterstützen, Klick-Analytics erfassen und Links zulassen, die zu einer festgelegten Zeit ablaufen.
Anforderungen:
- Verarbeiten Sie 120 Millionen neue Kurzlinks pro Tag.
- Verarbeiten Sie 4 Milliarden Redirects pro Tag.
- Die Spitzenlast kann das Dreifache des täglichen Durchschnitts erreichen.
- Ziel für Redirect-Latenz: p95 unter 80 ms für Nutzer in Nordamerika, Europa und Asien.
- Ziel für Kurzlink-Erstellungs-Latenz: p95 unter 300 ms.
- Verfügbarkeitsziel des Dienstes: 99,99% für Redirects.
- Analytics-Daten können innerhalb von 5 Minuten letztendlich konsistent sein.
- Benutzerdefinierte Aliase müssen global eindeutig sein.
- Abgelaufene oder gelöschte Links müssen schnell nicht mehr weiterleiten.
- Das System sollte regionale Ausfälle tolerieren, ohne dass der Dienst vollständig ausfällt.
Annahmen, die Sie verwenden können:
- Durchschnittliche Länge einer langen URL beträgt 500 Byte.
- Analytics-Ereignisse enthalten Zeitstempel, Link-ID, Land, Gerätetyp und Referrer-Domain.
- Leselast ist deutlich höher als Schreiblast.
- Sie können bei Bedarf SQL-, NoSQL-, Cache-, Stream-, CDN- und Messaging-Technologien wählen, müssen diese jedoch begründen.
Geben Sie in Ihrer Antwort an:
1. Eine Architekturübersicht auf hoher Ebene mit Hauptkomponenten und Anfrageflüssen.
2. Datenmodell und Speicherentscheidungen für Links, Aliase und Analytics.
3. Eine Skalierungsstrategie für leseintensiven Verkehr, einschließlich Caching und regionalem Routing.
4. Eine Zuverlässigkeitsstrategie, die Failover, Konsistenzentscheidungen und den Umgang mit regionalen Ausfällen abdeckt.
5. Wichtige Trade-offs, Engpässe und mindestens drei Risiken mit Gegenmaßnahmen.
6. Eine kurze Kapazitätsschätzung für Speicher und Durchsatz unter Verwendung der obigen Zahlen.