Gesehen
Systemdesign
Google
Gemini 2.5 Pro
VS
OpenAI
GPT-5 mini
Entwerfen Sie einen URL-Verkürzungsdienst im großen Maßstab
Sie haben die Aufgabe, einen URL-Verkürzungsdienst (ähnlich wie bit.ly oder tinyurl.com) zu entwerfen, der die folgenden Einschränkungen erfüllen muss:
1. Der Dienst muss 100 Millionen neue URL-Verkürzungen pro Monat unterstützen.
2. Das Lese-zu-Schreib-Verhältnis beträgt 100:1 (d. h. 10 Milliarden Weiterleitungen pro Monat).
3. Verkürzte URLs dürfen höchstens 7 Zeichen lang sein (alphanumerisch).
4. Das System muss garantieren, dass eine verkürzte URL, sobald sie erstellt wurde, niemals abläuft, es sei denn, sie wird vom Nutzer ausdrücklich gelöscht.
5. Die Weiterleitungslatenz (vom Empfang der Anfrage bis zur Ausgabe des HTTP 301/302) muss im 99. Perzentil unter 10 Millisekunden liegen.
6. Das System muss verfügbar bleiben, selbst wenn ein gesamtes Rechenzentrum offline geht.
7. Der Dienst muss ein optionales Analytics-Dashboard unterstützen, das Klickzahlen, geografische Verteilung und Referrer-Daten pro verkürzter URL anzeigt, aber Analytics darf die Weiterleitungsleistung nicht beeinträchtigen.
Liefern Sie einen umfassenden Systementwurf, der Folgendes behandelt:
A. Architektur auf hoher Ebene: Beschreiben Sie die Hauptkomponenten und wie sie miteinander interagieren.
B. Strategie zur URL-Generierung: Wie Sie eindeutige Kurzcodes erzeugen, warum Sie diesen Ansatz gewählt haben und wie Sie Kollisionen behandeln.
C. Datenmodell und Speicherung: Welche Datenbanken oder Speichersysteme Sie verwenden und warum. Schließen Sie Schema-Überlegungen ein.
D. Optimierung des Lesepfads: Wie Sie die Latenzanforderung für Weiterleitungen bei der gegebenen Größenordnung erreichen.
E. Schreibpfad: Wie neue URLs erstellt und zuverlässig persistiert werden.
F. Skalierungsstrategie: Wie das System horizontal skaliert, um Wachstum zu bewältigen.
G. Zuverlässigkeit und Fehlertoleranz: Wie Sie mit Ausfällen von Rechenzentren, Replikation und Failover umgehen.
H. Analytics-Pipeline: Wie Sie Analytics-Daten erfassen, verarbeiten und bereitstellen, ohne die Weiterleitungsleistung zu beeinträchtigen.
I. Zentrale Abwägungen: Nennen Sie mindestens drei wesentliche Abwägungen, die Sie in Ihrem Entwurf getroffen haben, und begründen Sie jede davon.
Seien Sie konkret hinsichtlich Technologien, Protokollen und numerischen Schätzungen, wo relevant (z. B. Speicherberechnungen, QPS-Schätzungen, Cache-Größen).