Ein Programm auf vielen Rechnern
Ein verteiltes System ist ein Programm, das auf mehreren Rechnern zugleich läuft und für die Nutzenden wie ein einziges wirkt. Man baut es, damit es schneller, größer und ausfallsicherer wird als ein einzelner Rechner.
Ein Ticketshop für ein Konzert in Hamburg bekommt am Verkaufsstart in einer Minute mehr Anfragen als sonst in einem Tag. Ein Rechner allein schafft das nicht.
Am Ende dieser Lektion
Notiz
Ich kann sagen, warum Systeme auf vielen Rechnern laufen und was dabei schiefgehen kann.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Verteiltes System | mehrere Rechner, die zusammen wie ein Programm arbeiten | |
| Knoten | ein einzelner Rechner im System | |
| Latenz | die Zeit, die eine Nachricht im Netz unterwegs ist | 35 ms |
| Teilausfall | ein Teil fällt aus, der Rest läuft weiter | |
| Verfügbarkeit | der Anteil der Zeit, in dem das System antwortet | 99,9 % |
| Skalierung | mehr Last tragen, indem man Rechner hinzufügt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum reicht ein einzelner Rechner nicht?
Ein Rechner hat Grenzen. Er hat nur wenige Prozessorkerne, nur so viel Speicher, wie eingebaut ist, und er kann ausfallen.
Darum nimmt man mehrere. Drei Gründe zählen: Geschwindigkeit, weil sich viele Anfragen verteilen. Größe, weil die Daten auf eine Platte nicht passen. Ausfallsicherheit, weil ein anderer Rechner übernimmt, wenn einer ausfällt.
Beispiel: drei Gründe für mehrere Rechner
| Grund | Problem eines Rechners | Lösung mit mehreren | Beispiel |
|---|---|---|---|
| Geschwindigkeit | Er schafft nur 500 Anfragen pro Sekunde | Vier Rechner teilen sich die Anfragen | Ticketverkauf |
| Größe | Die Daten sind größer als jede Platte | Jeder Rechner hält einen Teil | Fotoarchiv einer Stadt |
| Ausfallsicherheit | Fällt er aus, steht alles still | Ein zweiter Rechner übernimmt | Online-Banking |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Das Netz macht alles unsicherer
Rechner eines verteilten Systems sprechen über ein Netz. Jede Nachricht braucht Zeit, die Latenz. Eine Nachricht kann spät ankommen, verloren gehen oder doppelt ankommen.
Bleibt eine Antwort aus, wissen Sie nicht, warum. Der andere Knoten kann ausgefallen sein, die Anfrage kann verloren gegangen sein oder nur die Antwort. Das nennt man Teilausfall: Ein Teil fehlt, der Rest läuft.
Ein Zeitlimit zeigt nur, dass nichts kam
# Drei Anfragen an einen anderen Rechner. Die Zahlen sind die Antwortzeiten in Millisekunden.
zeitlimit = 200
antwortzeiten = [35, 120, 450]
for zeit in antwortzeiten:
if zeit <= zeitlimit:
print(zeit, "ms: Antwort rechtzeitig da")
else:
print(zeit, "ms: keine Antwort, der Grund bleibt unbekannt")
# Setzen Sie das Zeitlimit auf 500 und starten Sie erneut.
Einen kleinen Client namens v bauen
v() ( printf '%s\r\n' "$*" | nc -w 1 valkey 6379 )Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Fragen, ob der andere Knoten antwortet
v PINGHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Bestand an Fahrrädern speichern
v SET lager:fahrrad 12Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ihn über das Netz wieder lesen
v GET lager:fahrradHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele denken, ein Rechner ohne Antwort sei ausgefallen. Das stimmt nicht immer: Er kann nur langsam sein, oder das Netz hat die Nachricht verloren. Ein Zeitlimit zeigt nur, dass keine Antwort kam, nie den Grund.
Verfügbarkeit lässt sich ausrechnen
Die Verfügbarkeit ist der Anteil der Zeit, in dem ein Teil antwortet. 0,99 heißt 99 von 100 Anfragen.
Brauchen Sie alle Teile, multiplizieren Sie die Werte: Das System wird schlechter. Genügt eine Kopie, multiplizieren Sie die Ausfallanteile (1 minus Wert) und ziehen das Ergebnis von 1 ab: Das System wird besser.
Beispiel: zwei Rechnungen mit 99 Prozent
| Aufbau | Rechnung | Verfügbarkeit |
|---|---|---|
| Zwei Teile, beide nötig | 0,99 mal 0,99 | 0,9801, also 98,01 % |
| Drei Teile, alle nötig | 0,99 mal 0,99 mal 0,99 | 0,9703, also 97,03 % |
| Zwei Kopien, eine genügt | 1 minus (0,01 mal 0,01) | 0,9999, also 99,99 % |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.